Index: src/api.cc |
diff --git a/src/api.cc b/src/api.cc |
index 376b29616b8b59fa02d391e153c680ed618ed062..1eb693caa56af60d246153cbca22a1a9ec4db8c1 100644 |
--- a/src/api.cc |
+++ b/src/api.cc |
@@ -6457,6 +6457,8 @@ DeferredHandles* HandleScopeImplementer::Detach(Object** prev_limit) { |
blocks_.RemoveLast(); |
} |
+ ASSERT(prev_limit == NULL || !blocks_.is_empty()); |
+ |
ASSERT(!blocks_.is_empty() && prev_limit != NULL); |
deferred_handles_head_ = deferred; |
ASSERT(last_handle_before_deferred_block_ != NULL); |
@@ -6466,6 +6468,12 @@ DeferredHandles* HandleScopeImplementer::Detach(Object** prev_limit) { |
void HandleScopeImplementer::DestroyDeferredHandles(DeferredHandles* deferred) { |
+#ifdef DEBUG |
+ DeferredHandles* deferred_iterator = deferred; |
+ while (deferred_iterator->previous_ != NULL) |
+ deferred_iterator = deferred_iterator->previous_; |
Jakob Kummerow
2012/07/06 13:30:32
nit: {} please
sanjoy
2012/07/06 13:56:57
Done.
|
+ ASSERT(deferred_handles_head_ == deferred_iterator); |
+#endif |
if (deferred_handles_head_ == deferred) { |
deferred_handles_head_ = deferred_handles_head_->next_; |
} |
@@ -6500,14 +6508,14 @@ DeferredHandles::~DeferredHandles() { |
void DeferredHandles::Iterate(ObjectVisitor* v) { |
ASSERT(!blocks_.is_empty()); |
- for (int i = 0; i < (blocks_.length() - 1); i++) { |
- v->VisitPointers(blocks_[i], &blocks_[i][kHandleBlockSize]); |
- } |
+ ASSERT((last_block_limit_ >= blocks_.first()) && |
Jakob Kummerow
2012/07/06 13:30:32
last_block_limit_ should probably be renamed to fi
sanjoy
2012/07/06 13:56:57
Done.
|
+ (last_block_limit_ < &(blocks_.first())[kHandleBlockSize])); |
- ASSERT((last_block_limit_ >= blocks_.last()) && |
- (last_block_limit_ < &(blocks_.last())[kHandleBlockSize])); |
+ v->VisitPointers(blocks_.first(), last_block_limit_); |
- v->VisitPointers(blocks_.last(), last_block_limit_); |
+ for (int i = 1; i < (blocks_.length() - 1); i++) { |
Jakob Kummerow
2012/07/06 13:30:32
This skips over the last block.
sanjoy
2012/07/06 13:56:57
Done.
|
+ v->VisitPointers(blocks_[i], &blocks_[i][kHandleBlockSize]); |
+ } |
} |