summaryrefslogtreecommitdiff
path: root/test/2001-virtual-structural-multithread/src
AgeCommit message (Collapse)Author
2019-12-11Revert^4 "Allow structural redefinition on non-final classes." Alex Light
This reverts commit 664999a12d6fc8a8ef5c0519b12ec1e8a51bb085. Fixed issues with GC and quickened instructions in parent CLs. Reason for revert: Fixed issues with GC CHECK fail and device SEGVs. Test: ./test.py --host Test: ./test.py --target Bug: 134162467 Bug: 144168550 Change-Id: Ibacddaf45beb72184f97d53d5d048bd442578658
2019-12-03Revert "Revert^2 "Allow structural redefinition on non-final classes."" Nicolas Geoffray
This reverts commit f1b809ce611e943f926fff97cefe0930226ffcc2. Reason for revert: Tests still fail Bug: 134162467 Bug: 144168550 Change-Id: Icdebc826b8630920b716afbfd6f338a29669fcc2
2019-12-02Revert^2 "Allow structural redefinition on non-final classes." Alex Light
We were incorrectly racing with the rest of the runtime in a couple of places. First we would return an ObjPtr of a newly defined class after holding it over a suspend point. This could lead to DefineClass returning an obsolete class in some cases. We also failed to ensure the class-status was synchronized between the old and new classes during structural redefinition. This could lead to a class appearing to go backwards in status. This reverts commit 88b1c83080afcb2bfb6f781ded1c90fe8f9eab4d. Reason for revert: Fixed issues causing test failures. Test: ./test.py --host Bug: 134162467 Bug: 144168550 Change-Id: I4d0f7718490532f0ef14a9561b8e7000ef292b12
2019-11-26Revert "Allow structural redefinition on non-final classes." Roland Levillain
This reverts commit c47040d31cbcd8cddd5fadb552b4f0f6c94b5bd0. Reason for revert: Breaks ART tests (see e.g. b/145197371). Bug: 145197371 Bug: 134162467 Bug: 144168550 Change-Id: Ia8e5788655057e380fc723a38900d26d69cda938
2019-11-26Allow structural redefinition on non-final classes. Alex Light
This adds support for structurally redefining non-final, non-finalizable classes. The only restriction is that one cannot redefine a class at the same time as any of its supertypes, if a structural redefinition is occurring. The structural redefinition may not remove any fields or methods, change the superclass or change the implemented interfaces. Adding new methods or fields, both static or non-static, public, private, protected, or package-private, is supported. Test: ./test.py --host Bug: 134162467 Bug: 144168550 Change-Id: I32e9e854b3e56270170b10e8f5aba9de8f6bfdfa