Index: runtime/vm/isolate_reload.cc |
diff --git a/runtime/vm/isolate_reload.cc b/runtime/vm/isolate_reload.cc |
index 15aaf2920aa5b1b66cbe38dde6eaeda311330593..7a867d2d8e0b00ebf29c0429e6d56f49d846df0e 100644 |
--- a/runtime/vm/isolate_reload.cc |
+++ b/runtime/vm/isolate_reload.cc |
@@ -183,8 +183,6 @@ IsolateReloadContext::IsolateReloadContext(Isolate* isolate, bool test_mode) |
num_saved_libs_(-1), |
script_uri_(String::null()), |
error_(Error::null()), |
- clean_scripts_set_storage_(Array::null()), |
- compile_time_constants_(Array::null()), |
old_classes_set_storage_(Array::null()), |
class_map_storage_(Array::null()), |
old_libraries_set_storage_(Array::null()), |
@@ -193,8 +191,6 @@ IsolateReloadContext::IsolateReloadContext(Isolate* isolate, bool test_mode) |
saved_root_library_(Library::null()), |
saved_libraries_(GrowableObjectArray::null()) { |
// Preallocate storage for maps. |
- clean_scripts_set_storage_ = |
- HashTables::New<UnorderedHashSet<ScriptUrlSetTraits> >(4); |
old_classes_set_storage_ = |
HashTables::New<UnorderedHashSet<ClassMapTraits> >(4); |
class_map_storage_ = |
@@ -476,86 +472,6 @@ void IsolateReloadContext::CheckpointLibraries() { |
} |
-void IsolateReloadContext::BuildCleanScriptSet() { |
- const GrowableObjectArray& libs = |
- GrowableObjectArray::Handle(object_store()->libraries()); |
- |
- UnorderedHashSet<ScriptUrlSetTraits> |
- clean_scripts_set(clean_scripts_set_storage_); |
- |
- Library& lib = Library::Handle(); |
- Array& scripts = Array::Handle(); |
- Script& script = Script::Handle(); |
- String& script_url = String::Handle(); |
- for (intptr_t lib_idx = 0; lib_idx < libs.Length(); lib_idx++) { |
- lib = Library::RawCast(libs.At(lib_idx)); |
- ASSERT(!lib.IsNull()); |
- ASSERT(IsCleanLibrary(lib)); |
- scripts = lib.LoadedScripts(); |
- ASSERT(!scripts.IsNull()); |
- for (intptr_t script_idx = 0; script_idx < scripts.Length(); script_idx++) { |
- script = Script::RawCast(scripts.At(script_idx)); |
- ASSERT(!script.IsNull()); |
- script_url = script.url(); |
- ASSERT(!script_url.IsNull()); |
- bool already_present = clean_scripts_set.Insert(script_url); |
- ASSERT(!already_present); |
- } |
- } |
- |
- clean_scripts_set_storage_ = clean_scripts_set.Release().raw(); |
-} |
- |
- |
-void IsolateReloadContext::FilterCompileTimeConstants() { |
- // Save the compile time constants array. |
- compile_time_constants_ = I->object_store()->compile_time_constants(); |
- // Clear the compile time constants array. This will be repopulated |
- // in the loop below. |
- I->object_store()->set_compile_time_constants(Array::Handle()); |
- |
- if (compile_time_constants_ == Array::null()) { |
- // Nothing to do. |
- return; |
- } |
- |
- // Iterate over the saved compile time constants map. |
- ConstantsMap old_constants(compile_time_constants_); |
- ConstantsMap::Iterator it(&old_constants); |
- |
- Array& key = Array::Handle(); |
- String& url = String::Handle(); |
- Smi& token_pos = Smi::Handle(); |
- Instance& value = Instance::Handle(); |
- |
- // We filter the compile time constants map so that after it only contains |
- // constants from scripts contained in this set. |
- UnorderedHashSet<ScriptUrlSetTraits> |
- clean_scripts_set(clean_scripts_set_storage_); |
- |
- while (it.MoveNext()) { |
- const intptr_t entry = it.Current(); |
- ASSERT(entry != -1); |
- key = Array::RawCast(old_constants.GetKey(entry)); |
- ASSERT(!key.IsNull()); |
- url = String::RawCast(key.At(0)); |
- ASSERT(!url.IsNull()); |
- if (clean_scripts_set.ContainsKey(url)) { |
- // We've found a cached constant from a clean script, add it to the |
- // compile time constants map again. |
- token_pos = Smi::RawCast(key.At(1)); |
- TokenPosition tp(token_pos.Value()); |
- // Use ^= because this might be null. |
- value ^= old_constants.GetPayload(entry, 0); |
- Parser::InsertCachedConstantValue(url, tp, value); |
- } |
- } |
- |
- old_constants.Release(); |
- clean_scripts_set.Release(); |
-} |
- |
- |
// While reloading everything we do must be reversible so that we can abort |
// safely if the reload fails. This function stashes things to the side and |
// prepares the isolate for the reload attempt. |
@@ -563,8 +479,6 @@ void IsolateReloadContext::Checkpoint() { |
TIMELINE_SCOPE(Checkpoint); |
CheckpointClasses(); |
CheckpointLibraries(); |
- BuildCleanScriptSet(); |
- FilterCompileTimeConstants(); |
} |
@@ -614,8 +528,6 @@ void IsolateReloadContext::RollbackLibraries() { |
void IsolateReloadContext::Rollback() { |
- I->object_store()->set_compile_time_constants( |
- Array::Handle(compile_time_constants_)); |
RollbackClasses(); |
RollbackLibraries(); |
} |