mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 03:24:38 +02:00
Merge
This commit is contained in:
commit
c9b2bc62c9
2991 changed files with 67823 additions and 46239 deletions
|
@ -25,7 +25,7 @@
|
|||
#include "precompiled.hpp"
|
||||
|
||||
#include "code/codeCache.hpp"
|
||||
|
||||
#include "memory/metadataFactory.hpp"
|
||||
#include "memory/universe.hpp"
|
||||
#include "oops/oop.inline.hpp"
|
||||
|
||||
|
@ -41,6 +41,7 @@
|
|||
#include "runtime/os.hpp"
|
||||
#include "runtime/vm_version.hpp"
|
||||
|
||||
#include "utilities/array.hpp"
|
||||
#include "utilities/debug.hpp"
|
||||
#include "utilities/macros.hpp"
|
||||
#include "utilities/exceptions.hpp"
|
||||
|
@ -729,7 +730,6 @@ WB_ENTRY(jobjectArray, WB_GetNMethod(JNIEnv* env, jobject o, jobject method, jbo
|
|||
return result;
|
||||
WB_END
|
||||
|
||||
|
||||
WB_ENTRY(jlong, WB_GetThreadStackSize(JNIEnv* env, jobject o))
|
||||
return (jlong) Thread::current()->stack_size();
|
||||
WB_END
|
||||
|
@ -739,6 +739,35 @@ WB_ENTRY(jlong, WB_GetThreadRemainingStackSize(JNIEnv* env, jobject o))
|
|||
return (jlong) t->stack_available(os::current_stack_pointer()) - (jlong) StackShadowPages * os::vm_page_size();
|
||||
WB_END
|
||||
|
||||
int WhiteBox::array_bytes_to_length(size_t bytes) {
|
||||
return Array<u1>::bytes_to_length(bytes);
|
||||
}
|
||||
|
||||
WB_ENTRY(jlong, WB_AllocateMetaspace(JNIEnv* env, jobject wb, jobject class_loader, jlong size))
|
||||
if (size < 0) {
|
||||
THROW_MSG_0(vmSymbols::java_lang_IllegalArgumentException(),
|
||||
err_msg("WB_AllocateMetaspace: size is negative: " JLONG_FORMAT, size));
|
||||
}
|
||||
|
||||
oop class_loader_oop = JNIHandles::resolve(class_loader);
|
||||
ClassLoaderData* cld = class_loader_oop != NULL
|
||||
? java_lang_ClassLoader::loader_data(class_loader_oop)
|
||||
: ClassLoaderData::the_null_class_loader_data();
|
||||
|
||||
void* metadata = MetadataFactory::new_writeable_array<u1>(cld, WhiteBox::array_bytes_to_length((size_t)size), thread);
|
||||
|
||||
return (jlong)(uintptr_t)metadata;
|
||||
WB_END
|
||||
|
||||
WB_ENTRY(void, WB_FreeMetaspace(JNIEnv* env, jobject wb, jobject class_loader, jlong addr, jlong size))
|
||||
oop class_loader_oop = JNIHandles::resolve(class_loader);
|
||||
ClassLoaderData* cld = class_loader_oop != NULL
|
||||
? java_lang_ClassLoader::loader_data(class_loader_oop)
|
||||
: ClassLoaderData::the_null_class_loader_data();
|
||||
|
||||
MetadataFactory::free_array(cld, (Array<u1>*)(uintptr_t)addr);
|
||||
WB_END
|
||||
|
||||
//Some convenience methods to deal with objects from java
|
||||
int WhiteBox::offset_for_field(const char* field_name, oop object,
|
||||
Symbol* signature_symbol) {
|
||||
|
@ -869,6 +898,10 @@ static JNINativeMethod methods[] = {
|
|||
{CC"isInStringTable", CC"(Ljava/lang/String;)Z", (void*)&WB_IsInStringTable },
|
||||
{CC"fullGC", CC"()V", (void*)&WB_FullGC },
|
||||
{CC"readReservedMemory", CC"()V", (void*)&WB_ReadReservedMemory },
|
||||
{CC"allocateMetaspace",
|
||||
CC"(Ljava/lang/ClassLoader;J)J", (void*)&WB_AllocateMetaspace },
|
||||
{CC"freeMetaspace",
|
||||
CC"(Ljava/lang/ClassLoader;JJ)V", (void*)&WB_FreeMetaspace },
|
||||
{CC"getCPUFeatures", CC"()Ljava/lang/String;", (void*)&WB_GetCPUFeatures },
|
||||
{CC"getNMethod", CC"(Ljava/lang/reflect/Executable;Z)[Ljava/lang/Object;",
|
||||
(void*)&WB_GetNMethod },
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue