Index: runtime/vm/store_buffer.cc |
=================================================================== |
--- runtime/vm/store_buffer.cc (revision 9305) |
+++ runtime/vm/store_buffer.cc (working copy) |
@@ -23,4 +23,28 @@ |
return false; |
} |
+ |
+StoreBuffer::~StoreBuffer() { |
+ DedupSet* current = dedup_sets_; |
+ while (current != NULL) { |
+ DedupSet* next = current->next_; |
+ delete current; |
+ current = next; |
+ } |
siva
2012/07/02 20:57:42
dedup_sets_ = NULL;
Ivan Posva
2012/07/03 00:10:24
Done.
|
+} |
+ |
+ |
+void StoreBuffer::AddPointer(uword address) { |
siva
2012/07/02 20:57:42
ASSERT(dedup_sets_ != NULL);
Ivan Posva
2012/07/03 00:10:24
Done.
|
+ if (!dedup_sets_->set_->Add(address)) { |
+ // TODO(iposva): Limit growth of deduplication sets until the rest of the |
+ // mechanism is hooked up. |
+ delete dedup_sets_; |
+ dedup_sets_ = NULL; |
+ |
+ DedupSet* fresh_element = new DedupSet(); |
+ fresh_element->next_ = dedup_sets_; |
+ dedup_sets_ = fresh_element; |
+ } |
+} |
+ |
} // namespace dart |