< prev index next >
src/hotspot/share/services/management.cpp
Print this page
@@ -335,64 +335,46 @@
}
// Helper function to construct a ThreadInfo object
instanceOop Management::create_thread_info_instance(ThreadSnapshot* snapshot, TRAPS) {
InstanceKlass* ik = Management::java_lang_management_ThreadInfo_klass(CHECK_NULL);
-
- JavaValue result(T_VOID);
JavaCallArguments args(14);
- // First allocate a ThreadObj object and
- // push the receiver as the first argument
- Handle element = ik->allocate_instance_handle(CHECK_NULL);
- args.push_oop(element);
-
// initialize the arguments for the ThreadInfo constructor
initialize_ThreadInfo_constructor_arguments(&args, snapshot, CHECK_NULL);
// Call ThreadInfo constructor with no locked monitors and synchronizers
- JavaCalls::call_special(&result,
+ Handle element = JavaCalls::construct_new_instance(
ik,
- vmSymbols::object_initializer_name(),
vmSymbols::java_lang_management_ThreadInfo_constructor_signature(),
&args,
CHECK_NULL);
-
return (instanceOop) element();
}
instanceOop Management::create_thread_info_instance(ThreadSnapshot* snapshot,
objArrayHandle monitors_array,
typeArrayHandle depths_array,
objArrayHandle synchronizers_array,
TRAPS) {
InstanceKlass* ik = Management::java_lang_management_ThreadInfo_klass(CHECK_NULL);
-
- JavaValue result(T_VOID);
JavaCallArguments args(17);
- // First allocate a ThreadObj object and
- // push the receiver as the first argument
- Handle element = ik->allocate_instance_handle(CHECK_NULL);
- args.push_oop(element);
-
// initialize the arguments for the ThreadInfo constructor
initialize_ThreadInfo_constructor_arguments(&args, snapshot, CHECK_NULL);
// push the locked monitors and synchronizers in the arguments
args.push_oop(monitors_array);
args.push_oop(depths_array);
args.push_oop(synchronizers_array);
// Call ThreadInfo constructor with locked monitors and synchronizers
- JavaCalls::call_special(&result,
+ Handle element = JavaCalls::construct_new_instance(
ik,
- vmSymbols::object_initializer_name(),
vmSymbols::java_lang_management_ThreadInfo_with_locks_constructor_signature(),
&args,
CHECK_NULL);
-
return (instanceOop) element();
}
static GCMemoryManager* get_gc_memory_manager_from_jobject(jobject mgr, TRAPS) {
< prev index next >