Mercurial > hg > graal-jvmci-8
comparison src/share/vm/memory/metadataFactory.hpp @ 7614:59a58e20dc60
8006537: Assert when dumping archive with default methods
Reviewed-by: coleenp
author | jmasa |
---|---|
date | Thu, 17 Jan 2013 19:04:48 -0800 |
parents | da91efe96a93 |
children | d37a0525c0fe |
comparison
equal
deleted
inserted
replaced
7613:2dce7c34c564 | 7614:59a58e20dc60 |
---|---|
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 } |