Index: runtime/vm/simulator_dbc.cc |
diff --git a/runtime/vm/simulator_dbc.cc b/runtime/vm/simulator_dbc.cc |
index c25b5db917389da62781486405b4173675594e7d..6c7112e26c58ae4340995c5b2f704fc9a37423d3 100644 |
--- a/runtime/vm/simulator_dbc.cc |
+++ b/runtime/vm/simulator_dbc.cc |
@@ -1209,11 +1209,12 @@ RawObject* Simulator::Call(const Code& code, |
INVOKE_RUNTIME(DRT_OptimizeInvokedFunction, args); |
{ |
// DRT_OptimizeInvokedFunction returns the code object to execute. |
- ASSERT(FP[1]->GetClassId() == kCodeCid); |
- RawCode* code = static_cast<RawCode*>(FP[1]); |
+ ASSERT(FP[1]->GetClassId() == kFunctionCid); |
+ RawFunction* function = static_cast<RawFunction*>(FP[1]); |
+ RawCode* code = function->ptr()->code_; |
SimulatorHelpers::SetFrameCode(FP, code); |
pp = code->ptr()->object_pool_->ptr(); |
- pc = reinterpret_cast<uint32_t*>(code->ptr()->entry_point_); |
+ pc = reinterpret_cast<uint32_t*>(function->ptr()->entry_point_); |
pc_ = reinterpret_cast<uword>(pc); // For the profiler. |
} |
} |