summaryrefslogtreecommitdiff
path: root/runtime/entrypoints/quick/quick_entrypoints.h
diff options
context:
space:
mode:
author Roland Levillain <rpl@google.com> 2018-02-12 20:00:18 +0000
committer Roland Levillain <rpl@google.com> 2018-02-15 18:51:24 +0000
commitad0777d89df7eb21d7d2001f9743882d10de3f5c (patch)
tree15bf8fbfd1a3534972195d4ada9d92f1d0c98903 /runtime/entrypoints/quick/quick_entrypoints.h
parentdb8d9091bbab41060584ab80882b60df20337da7 (diff)
Visit proxy methods reference arguments when visiting Quick frames roots.
The arguments of a proxy method, stored in the proxy method's stack frame, need to be visited as GC roots. This is especially important in the case of a moving GC, where these reference arguments may be moved like any object. Previously, we would only visit the target (`this` argument) of proxy methods when visiting Quick frames roots. Test: art/test/testrunner/testrunner.py --gcstress -t 999-proxy-method-arguments Test: m test-art-host Test: m test-art-target Bug: 73149739 Bug: 70216372 Bug: 67679263 Change-Id: Ieacc966ab1038935600f2193c14e6ca01e88602e
Diffstat (limited to 'runtime/entrypoints/quick/quick_entrypoints.h')
-rw-r--r--runtime/entrypoints/quick/quick_entrypoints.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/runtime/entrypoints/quick/quick_entrypoints.h b/runtime/entrypoints/quick/quick_entrypoints.h
index 6cd9dc1d71..795faa8ecc 100644
--- a/runtime/entrypoints/quick/quick_entrypoints.h
+++ b/runtime/entrypoints/quick/quick_entrypoints.h
@@ -38,6 +38,7 @@ class Object;
class ArtMethod;
template<class MirrorType> class GcRoot;
+template<class MirrorType> class StackReference;
class Thread;
// Pointers to functions that are called by quick compiler generated code via thread-local storage.