equal
deleted
inserted
replaced
489 char** vm_flags = Arguments::jvm_flags_array(); |
489 char** vm_flags = Arguments::jvm_flags_array(); |
490 char** vm_args = Arguments::jvm_args_array(); |
490 char** vm_args = Arguments::jvm_args_array(); |
491 int num_flags = Arguments::num_jvm_flags(); |
491 int num_flags = Arguments::num_jvm_flags(); |
492 int num_args = Arguments::num_jvm_args(); |
492 int num_args = Arguments::num_jvm_args(); |
493 |
493 |
494 instanceKlassHandle ik (THREAD, SystemDictionary::string_klass()); |
494 instanceKlassHandle ik (THREAD, SystemDictionary::String_klass()); |
495 objArrayOop r = oopFactory::new_objArray(ik(), num_args + num_flags, CHECK_NULL); |
495 objArrayOop r = oopFactory::new_objArray(ik(), num_args + num_flags, CHECK_NULL); |
496 objArrayHandle result_h(THREAD, r); |
496 objArrayHandle result_h(THREAD, r); |
497 |
497 |
498 int index = 0; |
498 int index = 0; |
499 for (int j = 0; j < num_flags; j++, index++) { |
499 for (int j = 0; j < num_flags; j++, index++) { |
1319 ResourceMark rm(THREAD); |
1319 ResourceMark rm(THREAD); |
1320 |
1320 |
1321 LoadedClassesEnumerator lce(THREAD); // Pass current Thread as parameter |
1321 LoadedClassesEnumerator lce(THREAD); // Pass current Thread as parameter |
1322 |
1322 |
1323 int num_classes = lce.num_loaded_classes(); |
1323 int num_classes = lce.num_loaded_classes(); |
1324 objArrayOop r = oopFactory::new_objArray(SystemDictionary::class_klass(), num_classes, CHECK_0); |
1324 objArrayOop r = oopFactory::new_objArray(SystemDictionary::Class_klass(), num_classes, CHECK_0); |
1325 objArrayHandle classes_ah(THREAD, r); |
1325 objArrayHandle classes_ah(THREAD, r); |
1326 |
1326 |
1327 for (int i = 0; i < num_classes; i++) { |
1327 for (int i = 0; i < num_classes; i++) { |
1328 KlassHandle kh = lce.get_klass(i); |
1328 KlassHandle kh = lce.get_klass(i); |
1329 oop mirror = Klass::cast(kh())->java_mirror(); |
1329 oop mirror = Klass::cast(kh())->java_mirror(); |
1479 // Returns a String array of all VM global flag names |
1479 // Returns a String array of all VM global flag names |
1480 JVM_ENTRY(jobjectArray, jmm_GetVMGlobalNames(JNIEnv *env)) |
1480 JVM_ENTRY(jobjectArray, jmm_GetVMGlobalNames(JNIEnv *env)) |
1481 // last flag entry is always NULL, so subtract 1 |
1481 // last flag entry is always NULL, so subtract 1 |
1482 int nFlags = (int) Flag::numFlags - 1; |
1482 int nFlags = (int) Flag::numFlags - 1; |
1483 // allocate a temp array |
1483 // allocate a temp array |
1484 objArrayOop r = oopFactory::new_objArray(SystemDictionary::string_klass(), |
1484 objArrayOop r = oopFactory::new_objArray(SystemDictionary::String_klass(), |
1485 nFlags, CHECK_0); |
1485 nFlags, CHECK_0); |
1486 objArrayHandle flags_ah(THREAD, r); |
1486 objArrayHandle flags_ah(THREAD, r); |
1487 int num_entries = 0; |
1487 int num_entries = 0; |
1488 for (int i = 0; i < nFlags; i++) { |
1488 for (int i = 0; i < nFlags; i++) { |
1489 Flag* flag = &Flag::flags[i]; |
1489 Flag* flag = &Flag::flags[i]; |
1495 } |
1495 } |
1496 } |
1496 } |
1497 |
1497 |
1498 if (num_entries < nFlags) { |
1498 if (num_entries < nFlags) { |
1499 // Return array of right length |
1499 // Return array of right length |
1500 objArrayOop res = oopFactory::new_objArray(SystemDictionary::string_klass(), num_entries, CHECK_0); |
1500 objArrayOop res = oopFactory::new_objArray(SystemDictionary::String_klass(), num_entries, CHECK_0); |
1501 for(int i = 0; i < num_entries; i++) { |
1501 for(int i = 0; i < num_entries; i++) { |
1502 res->obj_at_put(i, flags_ah->obj_at(i)); |
1502 res->obj_at_put(i, flags_ah->obj_at(i)); |
1503 } |
1503 } |
1504 return (jobjectArray)JNIHandles::make_local(env, res); |
1504 return (jobjectArray)JNIHandles::make_local(env, res); |
1505 } |
1505 } |
1591 // return the requested globals |
1591 // return the requested globals |
1592 objArrayOop ta = objArrayOop(JNIHandles::resolve_non_null(names)); |
1592 objArrayOop ta = objArrayOop(JNIHandles::resolve_non_null(names)); |
1593 objArrayHandle names_ah(THREAD, ta); |
1593 objArrayHandle names_ah(THREAD, ta); |
1594 // Make sure we have a String array |
1594 // Make sure we have a String array |
1595 klassOop element_klass = objArrayKlass::cast(names_ah->klass())->element_klass(); |
1595 klassOop element_klass = objArrayKlass::cast(names_ah->klass())->element_klass(); |
1596 if (element_klass != SystemDictionary::string_klass()) { |
1596 if (element_klass != SystemDictionary::String_klass()) { |
1597 THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(), |
1597 THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(), |
1598 "Array element type is not String class", 0); |
1598 "Array element type is not String class", 0); |
1599 } |
1599 } |
1600 |
1600 |
1601 int names_length = names_ah->length(); |
1601 int names_length = names_ah->length(); |
1745 objArrayOop na = objArrayOop(JNIHandles::resolve_non_null(names)); |
1745 objArrayOop na = objArrayOop(JNIHandles::resolve_non_null(names)); |
1746 objArrayHandle names_ah(THREAD, na); |
1746 objArrayHandle names_ah(THREAD, na); |
1747 |
1747 |
1748 // Make sure we have a String array |
1748 // Make sure we have a String array |
1749 klassOop element_klass = objArrayKlass::cast(names_ah->klass())->element_klass(); |
1749 klassOop element_klass = objArrayKlass::cast(names_ah->klass())->element_klass(); |
1750 if (element_klass != SystemDictionary::string_klass()) { |
1750 if (element_klass != SystemDictionary::String_klass()) { |
1751 THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(), |
1751 THROW_MSG_(vmSymbols::java_lang_IllegalArgumentException(), |
1752 "Array element type is not String class", 0); |
1752 "Array element type is not String class", 0); |
1753 } |
1753 } |
1754 |
1754 |
1755 typeArrayOop ta = typeArrayOop(JNIHandles::resolve_non_null(times)); |
1755 typeArrayOop ta = typeArrayOop(JNIHandles::resolve_non_null(times)); |
1780 DeadlockCycle* cycle; |
1780 DeadlockCycle* cycle; |
1781 for (cycle = deadlocks; cycle != NULL; cycle = cycle->next()) { |
1781 for (cycle = deadlocks; cycle != NULL; cycle = cycle->next()) { |
1782 num_threads += cycle->num_threads(); |
1782 num_threads += cycle->num_threads(); |
1783 } |
1783 } |
1784 |
1784 |
1785 objArrayOop r = oopFactory::new_objArray(SystemDictionary::thread_klass(), num_threads, CHECK_NH); |
1785 objArrayOop r = oopFactory::new_objArray(SystemDictionary::Thread_klass(), num_threads, CHECK_NH); |
1786 objArrayHandle threads_ah(THREAD, r); |
1786 objArrayHandle threads_ah(THREAD, r); |
1787 |
1787 |
1788 int index = 0; |
1788 int index = 0; |
1789 for (cycle = deadlocks; cycle != NULL; cycle = cycle->next()) { |
1789 for (cycle = deadlocks; cycle != NULL; cycle = cycle->next()) { |
1790 GrowableArray<JavaThread*>* deadlock_threads = cycle->threads(); |
1790 GrowableArray<JavaThread*>* deadlock_threads = cycle->threads(); |