summaryrefslogtreecommitdiff
path: root/runtime/reflective_value_visitor.cc
AgeCommit message (Collapse)Author
2024-02-06Add visibility attributes in runtime/r* Dmitrii Ishcheikin
Bug: 260881207 Test: presubmit Test: abtd app_compat_drm Test: abtd app_compat_top_100 Test: abtd app_compat_banking Change-Id: I9a12fe4d7c47090631415e813a00c2a2fdcaca62
2019-10-07Revert^4 "Walk internal ArtField/ArtMethod pointers" Alex Light
Several of the new tests make use of the invoke-custom opcode. This opcode is not supported by dexter/slicer causing the tests to fail. This reverts commit c34eab45161c51bf63e548e44645cbcc59d01268. Reason for revert: Added tests to redefine-stress known failures Test: ./test.py --host --redefine-stress Bug: 134162467 Change-Id: Ic1b375a0cb1e44d0252c17115af92c269fb8efc5
2019-10-07Revert "Revert^2 "Walk internal ArtField/ArtMethod pointers"" Nicolas Geoffray
This reverts commit ea2a3d949354c8b054983ba629c81bc5ff7163da. Bug: 134162467 Reason for revert: Fails redefine stress Change-Id: If487c0bcacaf3a3f565ff475b6dad8321e3428b9
2019-10-04Revert^2 "Walk internal ArtField/ArtMethod pointers" Alex Light
This reverts commit 712fa800b2b78e527d36c88dc369bf4b723587ea. We incorrectly didn't check if a method was obsolete before giving its class's MethodIds array. We then incorrectly used this array and the (placeholder) -1 index to try to find the previous method-id. Since -1 is not a valid array index we got check failures. To fix this we simply added a check that the method is not obsolete and if it is we go to the slow-path. Reason for revert: Fixed issue causing out-of-bounds array access Test: ./test.py --host --debuggable --ndebuggable Bug: 134162467 Change-Id: Iaffefeab6e889b4fb6554a11452d0af051001cb7
2019-10-04Revert "Walk internal ArtField/ArtMethod pointers" Nicolas Geoffray
This reverts commit c84fc3a742b160ce51cbf01c2e5f971ccc0a2c6c. Bug: 134162467 Reason for revert: Test fails on debuggable. Change-Id: I240d58fafcc7434749947330b64c67d65b9b7a1e
2019-10-03Walk internal ArtField/ArtMethod pointers Alex Light
During structural class redefinition we sometimes need to update some of the ArtMethod/ArtField pointers held by runtime frames. This adds support for doing this through a StackReflectiveHandleScope similar to the StackHandleScope used for holding object references. This also updates various places where reflective-handles to ArtMethods and ArtFields are needed, for example the JniIdManager, field Read/Write operations and events, field resolution, and the old debugger. Test: ./test.py --host Bug: 134162467 Change-Id: I4ea73e85956a07735c6d7b125c5828a4233670bc
2019-09-27Consolidate updating of reflective Field/Method references Alex Light
Previously we used several different visitors to update Field & Method references for structural redefinition. We also did not visit or update JVMTI based references. This consolidates all the visitors to a single Runtime::VisitReflectiveTargets function with a single ReflectiveTargetVisitor type. This simplifies the code around structural redefinition and ensures that the reflective value holders are in charge of the actual replacement. Support was also added for walking internal openjdkjvmti references for things like field-read/modification events. Test: ./test.py --host Bug: 134162467 Change-Id: Ic5fc1db7db0a30f947a1a67259dc024e149ebd57