diff 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
line wrap: on
line diff
--- a/src/share/vm/oops/constMethod.cpp	Wed Mar 13 15:15:56 2013 -0400
+++ b/src/share/vm/oops/constMethod.cpp	Wed Mar 13 17:34:29 2013 -0400
@@ -67,6 +67,12 @@
   set_size_of_parameters(0);
 }
 
+// Accessor that copies to metadata.
+void ConstMethod::copy_stackmap_data(ClassLoaderData* loader_data,
+                                     u1* sd, int length, TRAPS) {
+  _stackmap_data = MetadataFactory::new_array<u1>(loader_data, length, CHECK);
+  memcpy((void*)_stackmap_data->adr_at(0), (void*)sd, length);
+}
 
 // Deallocate metadata fields associated with ConstMethod*
 void ConstMethod::deallocate_contents(ClassLoaderData* loader_data) {