diff options
author | Ben Murdoch <benm@google.com> | 2011-01-19 12:34:18 +0000 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-01-20 11:56:33 +0000 |
commit | 85816cb2b687fe806bc6490054c53f9bd0f1d9d2 (patch) | |
tree | 8197adf6635b8d5a5347105d76b51fb8ca2fe53a | |
parent | 94e1191aadda9f44c360c33b19deafbf94881fd5 (diff) | |
download | v8-85816cb2b687fe806bc6490054c53f9bd0f1d9d2.tar.gz |
Update v8 to r6394 (2.5 branch)
This is v8 2.5.9.11.
http://v8.googlecode.com/svn/branches/2.5@6394
Change-Id: I179913c9c86d36bfc5c6b8a50cdbf8d306508a93
-rw-r--r-- | V8_MERGE_REVISION | 4 | ||||
-rw-r--r-- | include/v8.h | 10 | ||||
-rw-r--r-- | src/api.cc | 4 | ||||
-rw-r--r-- | src/version.cc | 2 | ||||
-rw-r--r-- | test/cctest/test-api.cc | 4 |
5 files changed, 14 insertions, 10 deletions
diff --git a/V8_MERGE_REVISION b/V8_MERGE_REVISION index b48f2501..27dc101f 100644 --- a/V8_MERGE_REVISION +++ b/V8_MERGE_REVISION @@ -1,4 +1,4 @@ We use a V8 revision that has been used for a Chromium release. -http://src.chromium.org/svn/releases/9.0.597.69/DEPS -http://v8.googlecode.com/svn/branches/2.5@6333 +http://src.chromium.org/svn/releases/9.0.597.76/DEPS +http://v8.googlecode.com/svn/branches/2.5@6394 diff --git a/include/v8.h b/include/v8.h index 2684cd34..a202eaa7 100644 --- a/include/v8.h +++ b/include/v8.h @@ -3314,7 +3314,7 @@ template <> struct SmiTagging<4> { // For 32-bit systems any 2 bytes aligned pointer can be encoded as smi // with a plain reinterpret_cast. - static const intptr_t kEncodablePointerMask = 0x1; + static const uintptr_t kEncodablePointerMask = 0x1; static const int kPointerToSmiShift = 0; }; @@ -3334,8 +3334,8 @@ template <> struct SmiTagging<8> { // It might be not enough to cover stack allocated objects on some platforms. static const int kPointerAlignment = 3; - static const intptr_t kEncodablePointerMask = - ~(intptr_t(0xffffffff) << kPointerAlignment); + static const uintptr_t kEncodablePointerMask = + ~(uintptr_t(0xffffffff) << kPointerAlignment); static const int kPointerToSmiShift = kSmiTagSize + kSmiShiftSize - kPointerAlignment; @@ -3344,7 +3344,7 @@ template <> struct SmiTagging<8> { typedef SmiTagging<kApiPointerSize> PlatformSmiTagging; const int kSmiShiftSize = PlatformSmiTagging::kSmiShiftSize; const int kSmiValueSize = PlatformSmiTagging::kSmiValueSize; -const intptr_t kEncodablePointerMask = +const uintptr_t kEncodablePointerMask = PlatformSmiTagging::kEncodablePointerMask; const int kPointerToSmiShift = PlatformSmiTagging::kPointerToSmiShift; @@ -3404,7 +3404,7 @@ class Internals { } static inline void* GetExternalPointerFromSmi(internal::Object* value) { - const intptr_t address = reinterpret_cast<intptr_t>(value); + const uintptr_t address = reinterpret_cast<uintptr_t>(value); return reinterpret_cast<void*>(address >> kPointerToSmiShift); } @@ -3244,14 +3244,14 @@ void v8::Object::SetInternalField(int index, v8::Handle<Value> value) { static bool CanBeEncodedAsSmi(void* ptr) { - const intptr_t address = reinterpret_cast<intptr_t>(ptr); + const uintptr_t address = reinterpret_cast<uintptr_t>(ptr); return ((address & i::kEncodablePointerMask) == 0); } static i::Smi* EncodeAsSmi(void* ptr) { ASSERT(CanBeEncodedAsSmi(ptr)); - const intptr_t address = reinterpret_cast<intptr_t>(ptr); + const uintptr_t address = reinterpret_cast<uintptr_t>(ptr); i::Smi* result = reinterpret_cast<i::Smi*>(address << i::kPointerToSmiShift); ASSERT(i::Internals::HasSmiTag(result)); ASSERT_EQ(result, i::Smi::FromInt(result->value())); diff --git a/src/version.cc b/src/version.cc index 7b552eee..24e95847 100644 --- a/src/version.cc +++ b/src/version.cc @@ -35,7 +35,7 @@ #define MAJOR_VERSION 2 #define MINOR_VERSION 5 #define BUILD_NUMBER 9 -#define PATCH_LEVEL 9 +#define PATCH_LEVEL 11 #define CANDIDATE_VERSION false // Define SONAME to have the SCons build the put a specific SONAME into the diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc index 8a6a6776..fae5d3b7 100644 --- a/test/cctest/test-api.cc +++ b/test/cctest/test-api.cc @@ -874,6 +874,10 @@ THREADED_TEST(ExternalWrap) { TestExternalPointerWrapping(); #if defined(V8_HOST_ARCH_X64) + // Check a value with a leading 1 bit in x64 Smi encoding. + expected_ptr = reinterpret_cast<void*>(0x400000000); + TestExternalPointerWrapping(); + expected_ptr = reinterpret_cast<void*>(0xdeadbeefdeadbeef); TestExternalPointerWrapping(); |