Chromium Code Reviews| 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]); |
| + } |
| } |