Index: runtime/vm/stub_code.cc |
diff --git a/runtime/vm/stub_code.cc b/runtime/vm/stub_code.cc |
index df7773d933ce2b18b94101480d7c24b672b7b220..65a4966f2e2f149b19b099afb2770eed18d891d4 100644 |
--- a/runtime/vm/stub_code.cc |
+++ b/runtime/vm/stub_code.cc |
@@ -104,7 +104,10 @@ RawCode* StubCode::GetAllocationStubForClass(const Class& cls) { |
if (stub.IsNull()) { |
Assembler assembler; |
const char* name = cls.ToCString(); |
- StubCode::GenerateAllocationStubForClass(&assembler, cls); |
+ uword patch_code_offset = 0; |
+ uword entry_patch_offset = 0; |
+ StubCode::GenerateAllocationStubForClass( |
+ &assembler, cls, &entry_patch_offset, &patch_code_offset); |
stub ^= Code::FinalizeCode(name, &assembler); |
stub.set_owner(cls); |
cls.set_allocation_stub(stub); |
@@ -114,9 +117,12 @@ RawCode* StubCode::GetAllocationStubForClass(const Class& cls) { |
DisassembleToStdout formatter; |
stub.Disassemble(&formatter); |
THR_Print("}\n"); |
- const ObjectPool& object_pool = ObjectPool::Handle(stub.object_pool()); |
+ const ObjectPool& object_pool = ObjectPool::Handle( |
+ Instructions::Handle(stub.instructions()).object_pool()); |
object_pool.DebugPrint(); |
} |
+ stub.set_entry_patch_pc_offset(entry_patch_offset); |
+ stub.set_patch_code_pc_offset(patch_code_offset); |
} |
return stub.raw(); |
} |
@@ -149,7 +155,8 @@ RawCode* StubCode::Generate(const char* name, |
DisassembleToStdout formatter; |
code.Disassemble(&formatter); |
THR_Print("}\n"); |
- const ObjectPool& object_pool = ObjectPool::Handle(code.object_pool()); |
+ const ObjectPool& object_pool = ObjectPool::Handle( |
+ Instructions::Handle(code.instructions()).object_pool()); |
object_pool.DebugPrint(); |
} |
return code.raw(); |