equal
deleted
inserted
replaced
26 #include "classfile/metadataOnStackMark.hpp" |
26 #include "classfile/metadataOnStackMark.hpp" |
27 #include "classfile/systemDictionary.hpp" |
27 #include "classfile/systemDictionary.hpp" |
28 #include "classfile/verifier.hpp" |
28 #include "classfile/verifier.hpp" |
29 #include "code/codeCache.hpp" |
29 #include "code/codeCache.hpp" |
30 #include "compiler/compileBroker.hpp" |
30 #include "compiler/compileBroker.hpp" |
|
31 #include "gc/shared/gcLocker.hpp" |
31 #include "interpreter/oopMapCache.hpp" |
32 #include "interpreter/oopMapCache.hpp" |
32 #include "interpreter/rewriter.hpp" |
33 #include "interpreter/rewriter.hpp" |
33 #include "memory/gcLocker.hpp" |
|
34 #include "memory/metadataFactory.hpp" |
34 #include "memory/metadataFactory.hpp" |
35 #include "memory/metaspaceShared.hpp" |
35 #include "memory/metaspaceShared.hpp" |
36 #include "memory/universe.inline.hpp" |
36 #include "memory/universe.inline.hpp" |
37 #include "oops/fieldStreams.hpp" |
37 #include "oops/fieldStreams.hpp" |
38 #include "oops/klassVtable.hpp" |
38 #include "oops/klassVtable.hpp" |
3994 } |
3994 } |
3995 else if (scratch_class->get_cached_class_file_bytes() != |
3995 else if (scratch_class->get_cached_class_file_bytes() != |
3996 the_class->get_cached_class_file_bytes()) { |
3996 the_class->get_cached_class_file_bytes()) { |
3997 // The same class can be present twice in the scratch classes list or there |
3997 // The same class can be present twice in the scratch classes list or there |
3998 // are multiple concurrent RetransformClasses calls on different threads. |
3998 // are multiple concurrent RetransformClasses calls on different threads. |
3999 // In such cases we have to deallocate scratch_class cached_class_file_bytes. |
3999 // In such cases we have to deallocate scratch_class cached_class_file. |
4000 os::free(scratch_class->get_cached_class_file_bytes()); |
4000 os::free(scratch_class->get_cached_class_file()); |
4001 } |
4001 } |
4002 |
4002 |
4003 // NULL out in scratch class to not delete twice. The class to be redefined |
4003 // NULL out in scratch class to not delete twice. The class to be redefined |
4004 // always owns these bytes. |
4004 // always owns these bytes. |
4005 scratch_class->set_cached_class_file(NULL); |
4005 scratch_class->set_cached_class_file(NULL); |