Index: runtime/vm/code_patcher_dbc.cc |
diff --git a/runtime/vm/code_patcher_dbc.cc b/runtime/vm/code_patcher_dbc.cc |
index 6a273ac1c921703cac17a36444cb05bcdad37ce5..327b27f3a1e2fdbb2c8b3af0cc33148bbdb64d1e 100644 |
--- a/runtime/vm/code_patcher_dbc.cc |
+++ b/runtime/vm/code_patcher_dbc.cc |
@@ -68,15 +68,29 @@ RawFunction* CodePatcher::GetUnoptimizedStaticCallAt( |
void CodePatcher::PatchSwitchableCallAt(uword return_address, |
- const Code& code, |
- const ICData& ic_data, |
- const MegamorphicCache& cache, |
- const Code& lookup_stub) { |
- ASSERT(code.ContainsInstructionAt(return_address)); |
- SwitchableCallPattern call(return_address, code); |
- ASSERT(call.cache() == ic_data.raw()); |
- call.SetLookupStub(lookup_stub); |
- call.SetCache(cache); |
+ const Code& caller_code, |
+ const Object& data, |
+ const Code& target) { |
+ ASSERT(caller_code.ContainsInstructionAt(return_address)); |
+ SwitchableCallPattern call(return_address, caller_code); |
+ call.SetData(data); |
+ call.SetTarget(target); |
+} |
+ |
+ |
+RawCode* CodePatcher::GetSwitchableCallTargetAt(uword return_address, |
+ const Code& caller_code) { |
+ ASSERT(caller_code.ContainsInstructionAt(return_address)); |
+ SwitchableCallPattern call(return_address, caller_code); |
+ return call.target(); |
+} |
+ |
+ |
+RawObject* CodePatcher::GetSwitchableCallDataAt(uword return_address, |
+ const Code& caller_code) { |
+ ASSERT(caller_code.ContainsInstructionAt(return_address)); |
+ SwitchableCallPattern call(return_address, caller_code); |
+ return call.data(); |
} |