summaryrefslogtreecommitdiffstats
path: root/compiler/driver
diff options
context:
space:
mode:
authorMingyao Yang <mingyao@google.com>2014-07-16 10:44:41 -0700
committerMingyao Yang <mingyao@google.com>2014-07-22 15:03:50 -0700
commit2cdbad7c62f126581ec5177104de961c4d71adaa (patch)
tree6283b87bc9b65249decac9b0e38fe396782b8d7e /compiler/driver
parentc62944adcd427dca55489d234428da47c43a0aab (diff)
downloadart-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.h4
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