comparison src/share/vm/oops/constMethod.cpp @ 8719:c8b31b461e1a

8003419: NPG: Clean up metadata created during class loading if failure Summary: Store metadata on ClassFileParser instance to be cleaned up by destructor. This enabled some refactoring of the enormous parseClassFile function. Reviewed-by: jmasa, acorn
author coleenp
date Wed, 13 Mar 2013 17:34:29 -0400
parents 5939f5953b45
children 0c3ee6f1fa23
comparison
equal deleted inserted replaced
8718:0ede345ec7c9 8719:c8b31b461e1a
65 set_max_locals(0); 65 set_max_locals(0);
66 set_method_idnum(0); 66 set_method_idnum(0);
67 set_size_of_parameters(0); 67 set_size_of_parameters(0);
68 } 68 }
69 69
70 // Accessor that copies to metadata.
71 void ConstMethod::copy_stackmap_data(ClassLoaderData* loader_data,
72 u1* sd, int length, TRAPS) {
73 _stackmap_data = MetadataFactory::new_array<u1>(loader_data, length, CHECK);
74 memcpy((void*)_stackmap_data->adr_at(0), (void*)sd, length);
75 }
70 76
71 // Deallocate metadata fields associated with ConstMethod* 77 // Deallocate metadata fields associated with ConstMethod*
72 void ConstMethod::deallocate_contents(ClassLoaderData* loader_data) { 78 void ConstMethod::deallocate_contents(ClassLoaderData* loader_data) {
73 if (stackmap_data() != NULL) { 79 if (stackmap_data() != NULL) {
74 MetadataFactory::free_array<u1>(loader_data, stackmap_data()); 80 MetadataFactory::free_array<u1>(loader_data, stackmap_data());