mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 07:14:30 +02:00
8006537: Assert when dumping archive with default methods
Reviewed-by: coleenp
This commit is contained in:
parent
6799149f7d
commit
59f0209008
2 changed files with 7 additions and 1 deletions
|
@ -318,6 +318,7 @@ ClassLoaderData::~ClassLoaderData() {
|
|||
}
|
||||
|
||||
Metaspace* ClassLoaderData::metaspace_non_null() {
|
||||
assert(!DumpSharedSpaces, "wrong metaspace!");
|
||||
// If the metaspace has not been allocated, create a new one. Might want
|
||||
// to create smaller arena for Reflection class loaders also.
|
||||
// The reason for the delayed allocation is because some class loaders are
|
||||
|
|
|
@ -66,7 +66,11 @@ class MetadataFactory : AllStatic {
|
|||
if (data != NULL) {
|
||||
assert(loader_data != NULL, "shouldn't pass null");
|
||||
int size = data->size();
|
||||
loader_data->metaspace_non_null()->deallocate((MetaWord*)data, size, false);
|
||||
if (DumpSharedSpaces) {
|
||||
loader_data->ro_metaspace()->deallocate((MetaWord*)data, size, false);
|
||||
} else {
|
||||
loader_data->metaspace_non_null()->deallocate((MetaWord*)data, size, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -77,6 +81,7 @@ class MetadataFactory : AllStatic {
|
|||
assert(loader_data != NULL, "shouldn't pass null");
|
||||
int size = md->size();
|
||||
// Call metadata's deallocate function which will call deallocate fields
|
||||
assert(!DumpSharedSpaces, "cannot deallocate metadata when dumping CDS archive");
|
||||
assert(!md->on_stack(), "can't deallocate things on stack");
|
||||
md->deallocate_contents(loader_data);
|
||||
loader_data->metaspace_non_null()->deallocate((MetaWord*)md, size, md->is_klass());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue