Author: [email protected]
Date: Tue May  5 07:28:02 2009
New Revision: 1867

Modified:
    branches/bleeding_edge/src/string-stream.h

Log:
Add a temporary hack to FmtElm to truncate 64-bit pointers to 32-bits.

We will have to do some more work to get the code to handle pointers  
correctly.

Also clean up the constructors, and reduce the long lines.

Review URL: http://codereview.chromium.org/109021


Modified: branches/bleeding_edge/src/string-stream.h
==============================================================================
--- branches/bleeding_edge/src/string-stream.h  (original)
+++ branches/bleeding_edge/src/string-stream.h  Tue May  5 07:28:02 2009
@@ -72,13 +72,36 @@

  class FmtElm {
   public:
-  FmtElm(int value) : type_(INT) { data_.u_int_ = value; }  // NOLINT
-  explicit FmtElm(double value) : type_(DOUBLE) { data_.u_double_ = value;  
}  // NOLINT
-  FmtElm(const char* value) : type_(C_STR) { data_.u_c_str_ = value; }  //  
NOLINT
-  FmtElm(const Vector<const uc16>& value) : type_(LC_STR) {  
data_.u_lc_str_ = &value; } // NOLINT
-  FmtElm(Object* value) : type_(OBJ) { data_.u_obj_ = value; }  // NOLINT
-  FmtElm(Handle<Object> value) : type_(HANDLE) { data_.u_handle_ =  
value.location(); }  // NOLINT
-  FmtElm(void* value) : type_(INT) { data_.u_int_ =  
reinterpret_cast<int>(value); }  // NOLINT
+  FmtElm(int value) : type_(INT) {  // NOLINT
+    data_.u_int_ = value;
+  }
+  explicit FmtElm(double value) : type_(DOUBLE) {
+    data_.u_double_ = value;
+  }
+  FmtElm(const char* value) : type_(C_STR) {  // NOLINT
+    data_.u_c_str_ = value;
+  }
+  FmtElm(const Vector<const uc16>& value) : type_(LC_STR) {  // NOLINT
+    data_.u_lc_str_ = &value;
+  }
+  FmtElm(Object* value) : type_(OBJ) {  // NOLINT
+    data_.u_obj_ = value;
+  }
+  FmtElm(Handle<Object> value) : type_(HANDLE) {  // NOLINT
+    data_.u_handle_ = value.location();
+  }
+  FmtElm(void* value) : type_(INT) {  // NOLINT
+#if V8_HOST_ARCH_64_BIT
+    // TODO(x64): FmtElm needs to treat pointers as pointers, and not as
+    // ints.  This will require adding a pointer type, etc.  For now just
+    // hack it and truncate the pointer.
+    // http://code.google.com/p/v8/issues/detail?id=335
+    data_.u_int_ = 0;
+    UNIMPLEMENTED();
+#else
+    data_.u_int_ = reinterpret_cast<int>(value);
+#endif
+  }
   private:
    friend class StringStream;
    enum Type { INT, DOUBLE, C_STR, LC_STR, OBJ, HANDLE };

--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to