equal
deleted
inserted
replaced
75 return first_request != NULL; |
75 return first_request != NULL; |
76 } |
76 } |
77 |
77 |
78 static Handle getGcInfoBuilder(GCMemoryManager *gcManager,TRAPS) { |
78 static Handle getGcInfoBuilder(GCMemoryManager *gcManager,TRAPS) { |
79 |
79 |
80 klassOop k = Management::sun_management_GarbageCollectorImpl_klass(CHECK_NH); |
80 Klass* k = Management::sun_management_GarbageCollectorImpl_klass(CHECK_NH); |
81 instanceKlassHandle gcMBeanKlass (THREAD, k); |
81 instanceKlassHandle gcMBeanKlass (THREAD, k); |
82 |
82 |
83 instanceOop i = gcManager->get_memory_manager_instance(THREAD); |
83 instanceOop i = gcManager->get_memory_manager_instance(THREAD); |
84 instanceHandle ih(THREAD, i); |
84 instanceHandle ih(THREAD, i); |
85 |
85 |
98 static Handle createGcInfo(GCMemoryManager *gcManager, GCStatInfo *gcStatInfo,TRAPS) { |
98 static Handle createGcInfo(GCMemoryManager *gcManager, GCStatInfo *gcStatInfo,TRAPS) { |
99 |
99 |
100 // Fill the arrays of MemoryUsage objects with before and after GC |
100 // Fill the arrays of MemoryUsage objects with before and after GC |
101 // per pool memory usage |
101 // per pool memory usage |
102 |
102 |
103 klassOop mu_klass = Management::java_lang_management_MemoryUsage_klass(CHECK_NH); |
103 Klass* mu_klass = Management::java_lang_management_MemoryUsage_klass(CHECK_NH); |
104 instanceKlassHandle mu_kh(THREAD, mu_klass); |
104 instanceKlassHandle mu_kh(THREAD, mu_klass); |
105 |
105 |
106 // The array allocations below should use a handle containing mu_klass |
106 // The array allocations below should use a handle containing mu_klass |
107 // as the first allocation could trigger a GC, causing the actual |
107 // as the first allocation could trigger a GC, causing the actual |
108 // klass oop to move, and leaving mu_klass pointing to the old |
108 // klass oop to move, and leaving mu_klass pointing to the old |
131 |
131 |
132 // Current implementation only has 1 attribute (number of GC threads) |
132 // Current implementation only has 1 attribute (number of GC threads) |
133 // The type is 'I' |
133 // The type is 'I' |
134 objArrayOop extra_args_array = oopFactory::new_objArray(SystemDictionary::Integer_klass(), 1, CHECK_NH); |
134 objArrayOop extra_args_array = oopFactory::new_objArray(SystemDictionary::Integer_klass(), 1, CHECK_NH); |
135 objArrayHandle extra_array (THREAD, extra_args_array); |
135 objArrayHandle extra_array (THREAD, extra_args_array); |
136 klassOop itKlass = SystemDictionary::Integer_klass(); |
136 Klass* itKlass = SystemDictionary::Integer_klass(); |
137 instanceKlassHandle intK(THREAD, itKlass); |
137 instanceKlassHandle intK(THREAD, itKlass); |
138 |
138 |
139 instanceHandle extra_arg_val = intK->allocate_instance_handle(CHECK_NH); |
139 instanceHandle extra_arg_val = intK->allocate_instance_handle(CHECK_NH); |
140 |
140 |
141 { |
141 { |
151 &argsInt, |
151 &argsInt, |
152 CHECK_NH); |
152 CHECK_NH); |
153 } |
153 } |
154 extra_array->obj_at_put(0,extra_arg_val()); |
154 extra_array->obj_at_put(0,extra_arg_val()); |
155 |
155 |
156 klassOop gcInfoklass = Management::com_sun_management_GcInfo_klass(CHECK_NH); |
156 Klass* gcInfoklass = Management::com_sun_management_GcInfo_klass(CHECK_NH); |
157 instanceKlassHandle ik(THREAD, gcInfoklass); |
157 instanceKlassHandle ik(THREAD, gcInfoklass); |
158 |
158 |
159 Handle gcInfo_instance = ik->allocate_instance_handle(CHECK_NH); |
159 Handle gcInfo_instance = ik->allocate_instance_handle(CHECK_NH); |
160 |
160 |
161 JavaValue constructor_result(T_VOID); |
161 JavaValue constructor_result(T_VOID); |
213 |
213 |
214 Handle objName = java_lang_String::create_from_platform_dependent_str(request->gcManager->name(), CHECK); |
214 Handle objName = java_lang_String::create_from_platform_dependent_str(request->gcManager->name(), CHECK); |
215 Handle objAction = java_lang_String::create_from_platform_dependent_str(request->gcAction, CHECK); |
215 Handle objAction = java_lang_String::create_from_platform_dependent_str(request->gcAction, CHECK); |
216 Handle objCause = java_lang_String::create_from_platform_dependent_str(request->gcCause, CHECK); |
216 Handle objCause = java_lang_String::create_from_platform_dependent_str(request->gcCause, CHECK); |
217 |
217 |
218 klassOop k = Management::sun_management_GarbageCollectorImpl_klass(CHECK); |
218 Klass* k = Management::sun_management_GarbageCollectorImpl_klass(CHECK); |
219 instanceKlassHandle gc_mbean_klass(THREAD, k); |
219 instanceKlassHandle gc_mbean_klass(THREAD, k); |
220 |
220 |
221 instanceOop gc_mbean = request->gcManager->get_memory_manager_instance(THREAD); |
221 instanceOop gc_mbean = request->gcManager->get_memory_manager_instance(THREAD); |
222 instanceHandle gc_mbean_h(THREAD, gc_mbean); |
222 instanceHandle gc_mbean_h(THREAD, gc_mbean); |
223 if (!gc_mbean_h->is_a(k)) { |
223 if (!gc_mbean_h->is_a(k)) { |