comparison src/share/vm/memory/metadataFactory.hpp @ 7643:3ac7d10a6572

Merge with hsx25/hotspot.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Thu, 31 Jan 2013 15:42:25 +0100
parents 59a58e20dc60
children d37a0525c0fe
comparison
equal deleted inserted replaced
7573:17b6a63fe7c2 7643:3ac7d10a6572
64 template <typename T> 64 template <typename T>
65 static void free_array(ClassLoaderData* loader_data, Array<T>* data) { 65 static void free_array(ClassLoaderData* loader_data, Array<T>* data) {
66 if (data != NULL) { 66 if (data != NULL) {
67 assert(loader_data != NULL, "shouldn't pass null"); 67 assert(loader_data != NULL, "shouldn't pass null");
68 int size = data->size(); 68 int size = data->size();
69 loader_data->metaspace_non_null()->deallocate((MetaWord*)data, size, false); 69 if (DumpSharedSpaces) {
70 loader_data->ro_metaspace()->deallocate((MetaWord*)data, size, false);
71 } else {
72 loader_data->metaspace_non_null()->deallocate((MetaWord*)data, size, false);
73 }
70 } 74 }
71 } 75 }
72 76
73 // Deallocation method for metadata 77 // Deallocation method for metadata
74 template <class T> 78 template <class T>
75 static void free_metadata(ClassLoaderData* loader_data, T md) { 79 static void free_metadata(ClassLoaderData* loader_data, T md) {
76 if (md != NULL) { 80 if (md != NULL) {
77 assert(loader_data != NULL, "shouldn't pass null"); 81 assert(loader_data != NULL, "shouldn't pass null");
78 int size = md->size(); 82 int size = md->size();
79 // Call metadata's deallocate function which will call deallocate fields 83 // Call metadata's deallocate function which will call deallocate fields
84 assert(!DumpSharedSpaces, "cannot deallocate metadata when dumping CDS archive");
80 assert(!md->on_stack(), "can't deallocate things on stack"); 85 assert(!md->on_stack(), "can't deallocate things on stack");
81 md->deallocate_contents(loader_data); 86 md->deallocate_contents(loader_data);
82 loader_data->metaspace_non_null()->deallocate((MetaWord*)md, size, md->is_klass()); 87 loader_data->metaspace_non_null()->deallocate((MetaWord*)md, size, md->is_klass());
83 } 88 }
84 } 89 }