diff options
author | 2018-02-12 20:00:18 +0000 | |
---|---|---|
committer | 2018-02-15 18:51:24 +0000 | |
commit | ad0777d89df7eb21d7d2001f9743882d10de3f5c (patch) | |
tree | 15bf8fbfd1a3534972195d4ada9d92f1d0c98903 /runtime/entrypoints/quick/quick_entrypoints.h | |
parent | db8d9091bbab41060584ab80882b60df20337da7 (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.h | 1 |
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. |