diff options
author | Mingyao Yang <mingyao@google.com> | 2014-07-22 22:05:50 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2014-07-22 16:18:32 +0000 |
commit | c389c97ca93b73b3cb380cedfe438d153b524225 (patch) | |
tree | efb5f88c9fcb2ab87df05766fb14b3ae135d0f88 /runtime/interpreter | |
parent | c836fcbb52d99efdd9ed4f5c104aebd0c37cb121 (diff) | |
parent | 2cdbad7c62f126581ec5177104de961c4d71adaa (diff) | |
download | art-c389c97ca93b73b3cb380cedfe438d153b524225.zip art-c389c97ca93b73b3cb380cedfe438d153b524225.tar.gz art-c389c97ca93b73b3cb380cedfe438d153b524225.tar.bz2 |
Merge "Set vtable in class object to null after linking."
Diffstat (limited to 'runtime/interpreter')
-rw-r--r-- | runtime/interpreter/interpreter_common.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/runtime/interpreter/interpreter_common.h b/runtime/interpreter/interpreter_common.h index 1bcd27e..5a1d01e 100644 --- a/runtime/interpreter/interpreter_common.h +++ b/runtime/interpreter/interpreter_common.h @@ -140,7 +140,8 @@ static inline bool DoInvokeVirtualQuick(Thread* self, ShadowFrame& shadow_frame, return false; } const uint32_t vtable_idx = (is_range) ? inst->VRegB_3rc() : inst->VRegB_35c(); - ArtMethod* const method = receiver->GetClass()->GetVTable()->GetWithoutChecks(vtable_idx); + CHECK(receiver->GetClass()->ShouldHaveEmbeddedImtAndVTable()); + ArtMethod* const method = receiver->GetClass()->GetEmbeddedVTableEntry(vtable_idx); if (UNLIKELY(method == nullptr)) { CHECK(self->IsExceptionPending()); result->SetJ(0); |