Chromium Code Reviews| Index: runtime/vm/precompiler.cc |
| diff --git a/runtime/vm/precompiler.cc b/runtime/vm/precompiler.cc |
| index cd6eb34aa96a44578ecf8e57267c46e534d779a8..cf31b295f2dc1064467e961967826faaa59a21ce 100644 |
| --- a/runtime/vm/precompiler.cc |
| +++ b/runtime/vm/precompiler.cc |
| @@ -768,21 +768,17 @@ void Precompiler::AddField(const Field& field) { |
| const bool is_initialized = value.raw() != Object::sentinel().raw(); |
| if (is_initialized && !reset_fields_) return; |
| - if (!field.HasPrecompiledInitializer()) { |
| + if (!field.HasPrecompiledInitializer() || |
| + !Function::Handle(Z, field.PrecompiledInitializer()).HasCode()) { |
| if (FLAG_trace_precompiler) { |
| THR_Print("Precompiling initializer for %s\n", field.ToCString()); |
| } |
| ASSERT(Dart::snapshot_kind() != Snapshot::kAppNoJIT); |
| - field.SetStaticValue(Instance::Handle(field.SavedInitialStaticValue())); |
| const Function& initializer = |
| Function::Handle(CompileStaticInitializer(field)); |
|
rmacnak
2016/05/10 19:43:04
Handle(Z, ...
Florian Schneider
2016/05/10 19:49:59
Done.
|
| - if (!initializer.IsNull()) { |
| - field.SetPrecompiledInitializer(initializer); |
| - } |
| - ASSERT(field.HasPrecompiledInitializer()); |
| - const Function& function = |
| - Function::Handle(Z, field.PrecompiledInitializer()); |
| - AddCalleesOf(function); |
| + ASSERT(!initializer.IsNull()); |
| + field.SetPrecompiledInitializer(initializer); |
| + AddCalleesOf(initializer); |
| } |
| } |
| } |