Index: include/v8.h |
diff --git a/include/v8.h b/include/v8.h |
index 883bfad9458ebc31c511ff3ba93568e2d1eab635..db7e24a4799c5d87e533b2c221e5b75f74ed712a 100644 |
--- a/include/v8.h |
+++ b/include/v8.h |
@@ -3432,9 +3432,14 @@ class Internals { |
return ReadField<uint8_t>(map, kMapInstanceTypeOffset); |
} |
+ static inline void* GetExternalPointerFromSmi(internal::Object* smi) { |
+ return reinterpret_cast<void*>( |
+ reinterpret_cast<intptr_t>(smi) >> kSmiShiftSize); |
Lasse Reichstein
2011/01/13 08:35:18
I don't think this will work in 64-bit mode (kShif
|
+ } |
+ |
static inline void* GetExternalPointer(internal::Object* obj) { |
if (HasSmiTag(obj)) { |
- return obj; |
+ return GetExternalPointerFromSmi(obj); |
} else if (GetInstanceType(obj) == kProxyType) { |
return ReadField<void*>(obj, kProxyProxyOffset); |
} else { |