1502 err_msg("WB_AllocateMetaspace: size is negative: " JLONG_FORMAT, size)); |
1502 err_msg("WB_AllocateMetaspace: size is negative: " JLONG_FORMAT, size)); |
1503 } |
1503 } |
1504 |
1504 |
1505 oop class_loader_oop = JNIHandles::resolve(class_loader); |
1505 oop class_loader_oop = JNIHandles::resolve(class_loader); |
1506 ClassLoaderData* cld = class_loader_oop != NULL |
1506 ClassLoaderData* cld = class_loader_oop != NULL |
1507 ? java_lang_ClassLoader::loader_data(class_loader_oop) |
1507 ? java_lang_ClassLoader::loader_data_acquire(class_loader_oop) |
1508 : ClassLoaderData::the_null_class_loader_data(); |
1508 : ClassLoaderData::the_null_class_loader_data(); |
1509 |
1509 |
1510 void* metadata = MetadataFactory::new_array<u1>(cld, WhiteBox::array_bytes_to_length((size_t)size), thread); |
1510 void* metadata = MetadataFactory::new_array<u1>(cld, WhiteBox::array_bytes_to_length((size_t)size), thread); |
1511 |
1511 |
1512 return (jlong)(uintptr_t)metadata; |
1512 return (jlong)(uintptr_t)metadata; |
1513 WB_END |
1513 WB_END |
1514 |
1514 |
1515 WB_ENTRY(void, WB_FreeMetaspace(JNIEnv* env, jobject wb, jobject class_loader, jlong addr, jlong size)) |
1515 WB_ENTRY(void, WB_FreeMetaspace(JNIEnv* env, jobject wb, jobject class_loader, jlong addr, jlong size)) |
1516 oop class_loader_oop = JNIHandles::resolve(class_loader); |
1516 oop class_loader_oop = JNIHandles::resolve(class_loader); |
1517 ClassLoaderData* cld = class_loader_oop != NULL |
1517 ClassLoaderData* cld = class_loader_oop != NULL |
1518 ? java_lang_ClassLoader::loader_data(class_loader_oop) |
1518 ? java_lang_ClassLoader::loader_data_acquire(class_loader_oop) |
1519 : ClassLoaderData::the_null_class_loader_data(); |
1519 : ClassLoaderData::the_null_class_loader_data(); |
1520 |
1520 |
1521 MetadataFactory::free_array(cld, (Array<u1>*)(uintptr_t)addr); |
1521 MetadataFactory::free_array(cld, (Array<u1>*)(uintptr_t)addr); |
1522 WB_END |
1522 WB_END |
1523 |
1523 |