OSDN Git Service

Implement class-pre-define time redefinition.
authorAlex Light <allight@google.com>
Tue, 24 Jan 2017 23:32:25 +0000 (15:32 -0800)
committerAlex Light <allight@google.com>
Wed, 25 Jan 2017 17:58:30 +0000 (09:58 -0800)
commit440b5d9bffafa46366f58599414e0cff35ea3a6a
tree033967c68fff98790ba2ef6f84e31bcea36acbf0
parentf34077c96af3389e8eae65252d4c5d51cf630039
Implement class-pre-define time redefinition.

This allows one to redefine classes as they are being loaded without
restriction as to the types of transformations that may be included.
For example one is allowed to add additional methods or fields to the
class being defined.

Bug: 31684920
Test: mma -j40 test-art-host
Change-Id: I671ee13444c05f28424e727fd80d9d46c78ca287
24 files changed:
runtime/class_linker.cc
runtime/mirror/array-inl.h
runtime/mirror/array.h
runtime/openjdkjvmti/art_jvmti.h
runtime/openjdkjvmti/events-inl.h
runtime/openjdkjvmti/ti_class.cc
runtime/openjdkjvmti/ti_redefine.cc
runtime/openjdkjvmti/ti_redefine.h
runtime/openjdkjvmti/transform.cc
test/934-load-transform/build [new file with mode: 0755]
test/934-load-transform/expected.txt [new file with mode: 0644]
test/934-load-transform/info.txt [new file with mode: 0644]
test/934-load-transform/run [new file with mode: 0755]
test/934-load-transform/src/Main.java [new file with mode: 0644]
test/934-load-transform/src/Transform.java [new file with mode: 0644]
test/935-non-retransformable/build [new file with mode: 0755]
test/935-non-retransformable/expected.txt [new file with mode: 0644]
test/935-non-retransformable/info.txt [new file with mode: 0644]
test/935-non-retransformable/run [new file with mode: 0755]
test/935-non-retransformable/src/Main.java [new file with mode: 0644]
test/935-non-retransformable/src/Transform.java [new file with mode: 0644]
test/ti-agent/common_helper.cc
test/ti-agent/common_helper.h
test/ti-agent/common_load.cc