Mercurial > hg > graal-jvmci-8
comparison src/share/vm/oops/instanceKlass.cpp @ 11148:825e6cb66923
8020309: Eliminate InstanceKlass::_cached_class_file_len.
Summary: Use JvmtiCachedClassFileData.
Reviewed-by: iklam, sspitsyn, dcubed
author | jiangli |
---|---|
date | Wed, 17 Jul 2013 18:06:29 -0400 |
parents | 71180a6e5080 |
children | 6b0fd0964b87 e22ee8e7ae62 |
comparison
equal
deleted
inserted
replaced
11146:e619a2766bcc | 11148:825e6cb66923 |
---|---|
46 #include "oops/method.hpp" | 46 #include "oops/method.hpp" |
47 #include "oops/oop.inline.hpp" | 47 #include "oops/oop.inline.hpp" |
48 #include "oops/symbol.hpp" | 48 #include "oops/symbol.hpp" |
49 #include "prims/jvmtiExport.hpp" | 49 #include "prims/jvmtiExport.hpp" |
50 #include "prims/jvmtiRedefineClassesTrace.hpp" | 50 #include "prims/jvmtiRedefineClassesTrace.hpp" |
51 #include "prims/jvmtiRedefineClasses.hpp" | |
51 #include "prims/methodComparator.hpp" | 52 #include "prims/methodComparator.hpp" |
52 #include "runtime/fieldDescriptor.hpp" | 53 #include "runtime/fieldDescriptor.hpp" |
53 #include "runtime/handles.inline.hpp" | 54 #include "runtime/handles.inline.hpp" |
54 #include "runtime/javaCalls.hpp" | 55 #include "runtime/javaCalls.hpp" |
55 #include "runtime/mutexLocker.hpp" | 56 #include "runtime/mutexLocker.hpp" |
289 set_annotations(NULL); | 290 set_annotations(NULL); |
290 set_jvmti_cached_class_field_map(NULL); | 291 set_jvmti_cached_class_field_map(NULL); |
291 set_initial_method_idnum(0); | 292 set_initial_method_idnum(0); |
292 _dependencies = NULL; | 293 _dependencies = NULL; |
293 set_jvmti_cached_class_field_map(NULL); | 294 set_jvmti_cached_class_field_map(NULL); |
294 set_cached_class_file(NULL, 0); | 295 set_cached_class_file(NULL); |
295 set_initial_method_idnum(0); | 296 set_initial_method_idnum(0); |
296 set_minor_version(0); | 297 set_minor_version(0); |
297 set_major_version(0); | 298 set_major_version(0); |
298 NOT_PRODUCT(_verify_count = 0;) | 299 NOT_PRODUCT(_verify_count = 0;) |
299 | 300 |
2355 delete _previous_versions; | 2356 delete _previous_versions; |
2356 _previous_versions = NULL; | 2357 _previous_versions = NULL; |
2357 } | 2358 } |
2358 | 2359 |
2359 // deallocate the cached class file | 2360 // deallocate the cached class file |
2360 if (_cached_class_file_bytes != NULL) { | 2361 if (_cached_class_file != NULL) { |
2361 os::free(_cached_class_file_bytes, mtClass); | 2362 os::free(_cached_class_file, mtClass); |
2362 _cached_class_file_bytes = NULL; | 2363 _cached_class_file = NULL; |
2363 _cached_class_file_len = 0; | |
2364 } | 2364 } |
2365 | 2365 |
2366 // Decrement symbol reference counts associated with the unloaded class. | 2366 // Decrement symbol reference counts associated with the unloaded class. |
2367 if (_name != NULL) _name->decrement_refcount(); | 2367 if (_name != NULL) _name->decrement_refcount(); |
2368 // unreference array name derived from this class name (arrays of an unloaded | 2368 // unreference array name derived from this class name (arrays of an unloaded |
3528 } | 3528 } |
3529 } | 3529 } |
3530 return m; | 3530 return m; |
3531 } | 3531 } |
3532 | 3532 |
3533 jint InstanceKlass::get_cached_class_file_len() { | |
3534 return VM_RedefineClasses::get_cached_class_file_len(_cached_class_file); | |
3535 } | |
3536 | |
3537 unsigned char * InstanceKlass::get_cached_class_file_bytes() { | |
3538 return VM_RedefineClasses::get_cached_class_file_bytes(_cached_class_file); | |
3539 } | |
3540 | |
3533 | 3541 |
3534 // Construct a PreviousVersionNode entry for the array hung off | 3542 // Construct a PreviousVersionNode entry for the array hung off |
3535 // the InstanceKlass. | 3543 // the InstanceKlass. |
3536 PreviousVersionNode::PreviousVersionNode(ConstantPool* prev_constant_pool, | 3544 PreviousVersionNode::PreviousVersionNode(ConstantPool* prev_constant_pool, |
3537 bool prev_cp_is_weak, GrowableArray<Method*>* prev_EMCP_methods) { | 3545 bool prev_cp_is_weak, GrowableArray<Method*>* prev_EMCP_methods) { |