summaryrefslogtreecommitdiffstats
path: root/runtime/entrypoints/quick
diff options
context:
space:
mode:
authorMathieu Chartier <mathieuc@google.com>2014-02-16 15:59:00 -0800
committerMathieu Chartier <mathieuc@google.com>2014-02-16 16:06:03 -0800
commitd565caf5a5742e2c0b09a1edefac96c8bf354642 (patch)
treec72c8bb4f817c0247453fbf3e4ae5252e4c8c65d /runtime/entrypoints/quick
parent32a6c7f3bd76bbe574675d44b7d8076995690a5b (diff)
downloadart-d565caf5a5742e2c0b09a1edefac96c8bf354642.zip
art-d565caf5a5742e2c0b09a1edefac96c8bf354642.tar.gz
art-d565caf5a5742e2c0b09a1edefac96c8bf354642.tar.bz2
Don't store this_object in SIRT for static invokes.
I believe this_object is sometimes is garbage for static invokes. This may lead to bad roots being marked if ResolveMethod causes suspension for GC. Bug: 13051126 Change-Id: I6775b3db63ac5ce37ad423796f16c92645bd7891
Diffstat (limited to 'runtime/entrypoints/quick')
-rw-r--r--runtime/entrypoints/quick/quick_invoke_entrypoints.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/runtime/entrypoints/quick/quick_invoke_entrypoints.cc b/runtime/entrypoints/quick/quick_invoke_entrypoints.cc
index c081768..e024a90 100644
--- a/runtime/entrypoints/quick/quick_invoke_entrypoints.cc
+++ b/runtime/entrypoints/quick/quick_invoke_entrypoints.cc
@@ -147,8 +147,8 @@ template<InvokeType type, bool access_check>
uint64_t artInvokeCommon(uint32_t method_idx, mirror::Object* this_object,
mirror::ArtMethod* caller_method,
Thread* self, mirror::ArtMethod** sp) {
- mirror::ArtMethod* method = FindMethodFast(method_idx, this_object, caller_method,
- access_check, type);
+ mirror::ArtMethod* method = FindMethodFast(method_idx, this_object, caller_method, access_check,
+ type);
if (UNLIKELY(method == NULL)) {
FinishCalleeSaveFrameSetup(self, sp, Runtime::kRefsAndArgs);
method = FindMethodFromCode<type, access_check>(method_idx, this_object, caller_method, self);