Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Unified Diff: src/liveedit.cc

Issue 6542047: Basic implementation of incremental marking. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/gc
Patch Set: Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/liveedit.cc
diff --git a/src/liveedit.cc b/src/liveedit.cc
index a395c51189cbe3bfdf7d8e244e709d92363af108..fc1d4eac1c4247318fb8f1706e78631bde7eb59a 100644
--- a/src/liveedit.cc
+++ b/src/liveedit.cc
@@ -864,7 +864,9 @@ class ReferenceCollectorVisitor : public ObjectVisitor {
}
Address substitution_entry = substitution->instruction_start();
for (int i = 0; i < reloc_infos_.length(); i++) {
- reloc_infos_[i].set_target_address(substitution_entry);
+ reloc_infos_[i].set_target_address(substitution_entry, NULL);
+ // TODO(gc) more precise barrier.
+ IncrementalMarking::RecordWriteOf(substitution);
}
for (int i = 0; i < code_entries_.length(); i++) {
Address entry = code_entries_[i];
@@ -1289,7 +1291,7 @@ void LiveEdit::ReplaceRefToNestedFunction(
for (RelocIterator it(parent_shared->code()); !it.done(); it.next()) {
if (it.rinfo()->rmode() == RelocInfo::EMBEDDED_OBJECT) {
if (it.rinfo()->target_object() == *orig_shared) {
- it.rinfo()->set_target_object(*subst_shared);
+ it.rinfo()->set_target_object(*subst_shared, NULL);
}
}
}

Powered by Google App Engine
This is Rietveld 408576698