diff options
author | Chang Xing <chxing@google.com> | 2017-07-17 11:23:55 -0700 |
---|---|---|
committer | Chang Xing <chxing@google.com> | 2017-07-29 17:15:24 -0700 |
commit | adbb91c9c685a0a8d92c81dc5a897a520712c7dd (patch) | |
tree | 1ccdf5224347c7cc0e1d551e2df74128a6c0a6be /compiler/optimizing/loop_optimization_test.cc | |
parent | bd208d8e73084b691d9cfbe870120fe53863ce07 (diff) |
Fix recursive initialization on app image.
Assume class B extends class A and class A's clinit tries to instantiate
class B as a field. In this case, class A is under initializing but
ClassLinker allows initialize B as class A is initialized. If class B is
initialized successfully and transaction is commited then class A abort
the transaction, status of class B will not be reverted.
Fixed by a simple approach, when compiling images, AotClassLinker does
not allow initialize a subclass when it's superclass is not fully
initialized.
A testcase produce this error is added in /c/433381
Test: make test-art-host -j64
Change-Id: Ic6bcbf1a5162d0e6ec26979b336c0f644a1c39bc
Diffstat (limited to 'compiler/optimizing/loop_optimization_test.cc')
0 files changed, 0 insertions, 0 deletions