v8.h | v8.h | |||
---|---|---|---|---|
skipping to change at line 222 | skipping to change at line 222 | |||
}; | }; | |||
// --- Handles --- | // --- Handles --- | |||
#define TYPE_CHECK(T, S) \ | #define TYPE_CHECK(T, S) \ | |||
while (false) { \ | while (false) { \ | |||
*(static_cast<T* volatile*>(0)) = static_cast<S*>(0); \ | *(static_cast<T* volatile*>(0)) = static_cast<S*>(0); \ | |||
} | } | |||
#define V8_USE_UNSAFE_HANDLES | #define V8_USE_UNSAFE_HANDLES | |||
#define V8_USE_OLD_STYLE_PERSISTENT_HANDLE_VISITORS | ||||
/** | /** | |||
* An object reference managed by the v8 garbage collector. | * An object reference managed by the v8 garbage collector. | |||
* | * | |||
* All objects returned from v8 have to be tracked by the garbage | * All objects returned from v8 have to be tracked by the garbage | |||
* collector so that it knows that the objects are still alive. Also, | * collector so that it knows that the objects are still alive. Also, | |||
* because the garbage collector may move objects, it is unsafe to | * because the garbage collector may move objects, it is unsafe to | |||
* point directly to an object. Instead, all objects are stored in | * point directly to an object. Instead, all objects are stored in | |||
* handles which are known by the garbage collector and updated | * handles which are known by the garbage collector and updated | |||
* whenever an object moves. Handles should always be passed by value | * whenever an object moves. Handles should always be passed by value | |||
skipping to change at line 4028 | skipping to change at line 4027 | |||
virtual ~ExternalResourceVisitor() {} | virtual ~ExternalResourceVisitor() {} | |||
virtual void VisitExternalString(Handle<String> string) {} | virtual void VisitExternalString(Handle<String> string) {} | |||
}; | }; | |||
/** | /** | |||
* Interface for iterating through all the persistent handles in the heap. | * Interface for iterating through all the persistent handles in the heap. | |||
*/ | */ | |||
class V8EXPORT PersistentHandleVisitor { // NOLINT | class V8EXPORT PersistentHandleVisitor { // NOLINT | |||
public: | public: | |||
virtual ~PersistentHandleVisitor() {} | virtual ~PersistentHandleVisitor() {} | |||
#ifdef V8_USE_OLD_STYLE_PERSISTENT_HANDLE_VISITORS | ||||
virtual void VisitPersistentHandle(Persistent<Value> value, | ||||
uint16_t class_id) {} | ||||
#else | ||||
virtual void VisitPersistentHandle(Persistent<Value>* value, | virtual void VisitPersistentHandle(Persistent<Value>* value, | |||
uint16_t class_id) {} | uint16_t class_id) {} | |||
#endif | ||||
}; | }; | |||
/** | /** | |||
* Asserts that no action is performed that could cause a handle's value | * Asserts that no action is performed that could cause a handle's value | |||
* to be modified. Useful when otherwise unsafe handle operations need to | * to be modified. Useful when otherwise unsafe handle operations need to | |||
* be performed. | * be performed. | |||
*/ | */ | |||
class V8EXPORT AssertNoGCScope { | class V8EXPORT AssertNoGCScope { | |||
#ifndef DEBUG | #ifndef DEBUG | |||
// TODO(yangguo): remove isolate argument. | // TODO(yangguo): remove isolate argument. | |||
End of changes. 3 change blocks. | ||||
6 lines changed or deleted | 0 lines changed or added | |||