Mercurial > hg > truffle
diff src/share/vm/prims/jvmtiEnv.cpp @ 4731:4ceaf61479fc
7122253: Instrumentation.retransformClasses() leaks class bytes
Summary: Change ClassFileParser::parseClassFile() to use the instanceKlass:_cached_class_file_bytes field to avoid leaking the cache.
Reviewed-by: coleenp, acorn, poonam
author | dcubed |
---|---|
date | Thu, 22 Dec 2011 12:50:42 -0800 |
parents | a6eef545f1a2 |
children | 0ebca2e35ca5 d2a62e0f25eb |
line wrap: on
line diff
--- a/src/share/vm/prims/jvmtiEnv.cpp Wed Dec 21 18:22:14 2011 -0800 +++ b/src/share/vm/prims/jvmtiEnv.cpp Thu Dec 22 12:50:42 2011 -0800 @@ -267,7 +267,10 @@ instanceKlassHandle ikh(current_thread, k_oop); if (ikh->get_cached_class_file_bytes() == NULL) { - // not cached, we need to reconstitute the class file from VM representation + // Not cached, we need to reconstitute the class file from the + // VM representation. We don't attach the reconstituted class + // bytes to the instanceKlass here because they have not been + // validated and we're not at a safepoint. constantPoolHandle constants(current_thread, ikh->constants()); ObjectLocker ol(constants, current_thread); // lock constant pool while we query it