| Index: src/api.h
|
| ===================================================================
|
| --- src/api.h (revision 2968)
|
| +++ src/api.h (working copy)
|
| @@ -311,27 +311,19 @@
|
| public:
|
|
|
| HandleScopeImplementer()
|
| - : blocks(0),
|
| + : blocks_(0),
|
| entered_contexts_(0),
|
| saved_contexts_(0) {
|
| Initialize();
|
| }
|
|
|
| - void Initialize() {
|
| - blocks.Initialize(0);
|
| - entered_contexts_.Initialize(0);
|
| - saved_contexts_.Initialize(0);
|
| - spare = NULL;
|
| - ignore_out_of_memory = false;
|
| - call_depth = 0;
|
| - }
|
| -
|
| static HandleScopeImplementer* instance();
|
|
|
| // Threading support for handle data.
|
| static int ArchiveSpacePerThread();
|
| static char* RestoreThread(char* from);
|
| static char* ArchiveThread(char* to);
|
| + static void FreeThreadResources();
|
|
|
| // Garbage collection support.
|
| static void Iterate(v8::internal::ObjectVisitor* v);
|
| @@ -341,9 +333,9 @@
|
| inline internal::Object** GetSpareOrNewBlock();
|
| inline void DeleteExtensions(int extensions);
|
|
|
| - inline void IncrementCallDepth() {call_depth++;}
|
| - inline void DecrementCallDepth() {call_depth--;}
|
| - inline bool CallDepthIsZero() { return call_depth == 0; }
|
| + inline void IncrementCallDepth() {call_depth_++;}
|
| + inline void DecrementCallDepth() {call_depth_--;}
|
| + inline bool CallDepthIsZero() { return call_depth_ == 0; }
|
|
|
| inline void EnterContext(Handle<Object> context);
|
| inline bool LeaveLastContext();
|
| @@ -356,20 +348,41 @@
|
| inline Context* RestoreContext();
|
| inline bool HasSavedContexts();
|
|
|
| - inline List<internal::Object**>* Blocks() { return &blocks; }
|
| + inline List<internal::Object**>* blocks() { return &blocks_; }
|
| + inline bool ignore_out_of_memory() { return ignore_out_of_memory_; }
|
| + inline void set_ignore_out_of_memory(bool value) {
|
| + ignore_out_of_memory_ = value;
|
| + }
|
|
|
| - inline bool IgnoreOutOfMemory() { return ignore_out_of_memory; }
|
| - inline void SetIgnoreOutOfMemory(bool value) { ignore_out_of_memory = value; }
|
| + private:
|
| + void Initialize() {
|
| + blocks_.Initialize(0);
|
| + entered_contexts_.Initialize(0);
|
| + saved_contexts_.Initialize(0);
|
| + spare_ = NULL;
|
| + ignore_out_of_memory_ = false;
|
| + call_depth_ = 0;
|
| + }
|
|
|
| - private:
|
| - List<internal::Object**> blocks;
|
| - Object** spare;
|
| - int call_depth;
|
| + void Free() {
|
| + ASSERT(blocks_.length() == 0);
|
| + ASSERT(entered_contexts_.length() == 0);
|
| + ASSERT(saved_contexts_.length() == 0);
|
| + if (spare_ != NULL) {
|
| + DeleteArray(spare_);
|
| + spare_ = NULL;
|
| + }
|
| + ASSERT(call_depth_ == 0);
|
| + }
|
| +
|
| + List<internal::Object**> blocks_;
|
| + Object** spare_;
|
| + int call_depth_;
|
| // Used as a stack to keep track of entered contexts.
|
| List<Handle<Object> > entered_contexts_;
|
| // Used as a stack to keep track of saved contexts.
|
| List<Context*> saved_contexts_;
|
| - bool ignore_out_of_memory;
|
| + bool ignore_out_of_memory_;
|
| // This is only used for threading support.
|
| v8::ImplementationUtilities::HandleScopeData handle_scope_data_;
|
|
|
| @@ -419,32 +432,32 @@
|
|
|
| // If there's a spare block, use it for growing the current scope.
|
| internal::Object** HandleScopeImplementer::GetSpareOrNewBlock() {
|
| - internal::Object** block = (spare != NULL) ?
|
| - spare :
|
| + internal::Object** block = (spare_ != NULL) ?
|
| + spare_ :
|
| NewArray<internal::Object*>(kHandleBlockSize);
|
| - spare = NULL;
|
| + spare_ = NULL;
|
| return block;
|
| }
|
|
|
|
|
| void HandleScopeImplementer::DeleteExtensions(int extensions) {
|
| - if (spare != NULL) {
|
| - DeleteArray(spare);
|
| - spare = NULL;
|
| + if (spare_ != NULL) {
|
| + DeleteArray(spare_);
|
| + spare_ = NULL;
|
| }
|
| for (int i = extensions; i > 1; --i) {
|
| - internal::Object** block = blocks.RemoveLast();
|
| + internal::Object** block = blocks_.RemoveLast();
|
| #ifdef DEBUG
|
| v8::ImplementationUtilities::ZapHandleRange(block,
|
| &block[kHandleBlockSize]);
|
| #endif
|
| DeleteArray(block);
|
| }
|
| - spare = blocks.RemoveLast();
|
| + spare_ = blocks_.RemoveLast();
|
| #ifdef DEBUG
|
| v8::ImplementationUtilities::ZapHandleRange(
|
| - spare,
|
| - &spare[kHandleBlockSize]);
|
| + spare_,
|
| + &spare_[kHandleBlockSize]);
|
| #endif
|
| }
|
|
|
|
|