diff options
author | Mingyao Yang <mingyao@google.com> | 2014-07-16 10:44:41 -0700 |
---|---|---|
committer | Mingyao Yang <mingyao@google.com> | 2014-07-22 15:03:50 -0700 |
commit | 2cdbad7c62f126581ec5177104de961c4d71adaa (patch) | |
tree | 6283b87bc9b65249decac9b0e38fe396782b8d7e /compiler/driver | |
parent | c62944adcd427dca55489d234428da47c43a0aab (diff) | |
download | art-2cdbad7c62f126581ec5177104de961c4d71adaa.zip art-2cdbad7c62f126581ec5177104de961c4d71adaa.tar.gz art-2cdbad7c62f126581ec5177104de961c4d71adaa.tar.bz2 |
Set vtable in class object to null after linking.
This is follow-up work of embedding imt and vtable for
faster interface/virtual call dispatching.
Once vtable becomes embedded, the original vtable is nulled.
Change-Id: I307696657d1e283654169dbecb8f7815c42bbabc
Diffstat (limited to 'compiler/driver')
-rw-r--r-- | compiler/driver/compiler_driver-inl.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/driver/compiler_driver-inl.h b/compiler/driver/compiler_driver-inl.h index 89295f2..022ec6b 100644 --- a/compiler/driver/compiler_driver-inl.h +++ b/compiler/driver/compiler_driver-inl.h @@ -231,8 +231,8 @@ inline int CompilerDriver::IsFastInvoke( // the super class. bool can_sharpen_super_based_on_type = (*invoke_type == kSuper) && (referrer_class != methods_class) && referrer_class->IsSubClass(methods_class) && - resolved_method->GetMethodIndex() < methods_class->GetVTable()->GetLength() && - (methods_class->GetVTable()->Get(resolved_method->GetMethodIndex()) == resolved_method); + resolved_method->GetMethodIndex() < methods_class->GetVTableLength() && + (methods_class->GetVTableEntry(resolved_method->GetMethodIndex()) == resolved_method); if (can_sharpen_virtual_based_on_type || can_sharpen_super_based_on_type) { // Sharpen a virtual call into a direct call. The method_idx is into referrer's |