Mercurial > hg > truffle
comparison src/share/vm/prims/jvmtiRedefineClasses.cpp @ 10252:712a1e9c91f3
8013063: nsk/jvmti/RetransformClasses/retransform001 failed debug version on os::free
Summary: Clear out class_file_bytes so they aren't deallocated twice
Reviewed-by: dcubed, sspitsyn
author | coleenp |
---|---|
date | Tue, 07 May 2013 09:46:15 -0400 |
parents | 15a99ca4ee34 |
children | 43083e670adf |
comparison
equal
deleted
inserted
replaced
10227:3ecc6b9940de | 10252:712a1e9c91f3 |
---|---|
3364 assert(the_class->get_cached_class_file_len() == | 3364 assert(the_class->get_cached_class_file_len() == |
3365 scratch_class->get_cached_class_file_len(), "cache lens must match"); | 3365 scratch_class->get_cached_class_file_len(), "cache lens must match"); |
3366 } | 3366 } |
3367 #endif | 3367 #endif |
3368 | 3368 |
3369 // NULL out in scratch class to not delete twice. The class to be redefined | |
3370 // always owns these bytes. | |
3371 scratch_class->set_cached_class_file(NULL, 0); | |
3372 | |
3369 // Replace inner_classes | 3373 // Replace inner_classes |
3370 Array<u2>* old_inner_classes = the_class->inner_classes(); | 3374 Array<u2>* old_inner_classes = the_class->inner_classes(); |
3371 the_class->set_inner_classes(scratch_class->inner_classes()); | 3375 the_class->set_inner_classes(scratch_class->inner_classes()); |
3372 scratch_class->set_inner_classes(old_inner_classes); | 3376 scratch_class->set_inner_classes(old_inner_classes); |
3373 | 3377 |