1824 bool succeed; 1825 if (flag->is_bool()) { 1826 bool bvalue = (new_value.z == JNI_TRUE ? true : false); 1827 succeed = CommandLineFlags::boolAtPut(name, &bvalue, Flag::MANAGEMENT); 1828 } else if (flag->is_intx()) { 1829 intx ivalue = (intx)new_value.j; 1830 succeed = CommandLineFlags::intxAtPut(name, &ivalue, Flag::MANAGEMENT); 1831 } else if (flag->is_uintx()) { 1832 uintx uvalue = (uintx)new_value.j; 1833 succeed = CommandLineFlags::uintxAtPut(name, &uvalue, Flag::MANAGEMENT); 1834 } else if (flag->is_uint64_t()) { 1835 uint64_t uvalue = (uint64_t)new_value.j; 1836 succeed = CommandLineFlags::uint64_tAtPut(name, &uvalue, Flag::MANAGEMENT); 1837 } else if (flag->is_ccstr()) { 1838 oop str = JNIHandles::resolve_external_guard(new_value.l); 1839 if (str == NULL) { 1840 THROW(vmSymbols::java_lang_NullPointerException()); 1841 } 1842 ccstr svalue = java_lang_String::as_utf8_string(str); 1843 succeed = CommandLineFlags::ccstrAtPut(name, &svalue, Flag::MANAGEMENT); 1844 } 1845 assert(succeed, "Setting flag should succeed"); 1846 JVM_END 1847 1848 class ThreadTimesClosure: public ThreadClosure { 1849 private: 1850 objArrayHandle _names_strings; 1851 char **_names_chars; 1852 typeArrayHandle _times; 1853 int _names_len; 1854 int _times_len; 1855 int _count; 1856 1857 public: 1858 ThreadTimesClosure(objArrayHandle names, typeArrayHandle times); 1859 ~ThreadTimesClosure(); 1860 virtual void do_thread(Thread* thread); 1861 void do_unlocked(); 1862 int count() { return _count; } 1863 }; | 1824 bool succeed; 1825 if (flag->is_bool()) { 1826 bool bvalue = (new_value.z == JNI_TRUE ? true : false); 1827 succeed = CommandLineFlags::boolAtPut(name, &bvalue, Flag::MANAGEMENT); 1828 } else if (flag->is_intx()) { 1829 intx ivalue = (intx)new_value.j; 1830 succeed = CommandLineFlags::intxAtPut(name, &ivalue, Flag::MANAGEMENT); 1831 } else if (flag->is_uintx()) { 1832 uintx uvalue = (uintx)new_value.j; 1833 succeed = CommandLineFlags::uintxAtPut(name, &uvalue, Flag::MANAGEMENT); 1834 } else if (flag->is_uint64_t()) { 1835 uint64_t uvalue = (uint64_t)new_value.j; 1836 succeed = CommandLineFlags::uint64_tAtPut(name, &uvalue, Flag::MANAGEMENT); 1837 } else if (flag->is_ccstr()) { 1838 oop str = JNIHandles::resolve_external_guard(new_value.l); 1839 if (str == NULL) { 1840 THROW(vmSymbols::java_lang_NullPointerException()); 1841 } 1842 ccstr svalue = java_lang_String::as_utf8_string(str); 1843 succeed = CommandLineFlags::ccstrAtPut(name, &svalue, Flag::MANAGEMENT); 1844 if (succeed) { 1845 FREE_C_HEAP_ARRAY(char, svalue, mtInternal); 1846 } 1847 } 1848 assert(succeed, "Setting flag should succeed"); 1849 JVM_END 1850 1851 class ThreadTimesClosure: public ThreadClosure { 1852 private: 1853 objArrayHandle _names_strings; 1854 char **_names_chars; 1855 typeArrayHandle _times; 1856 int _names_len; 1857 int _times_len; 1858 int _count; 1859 1860 public: 1861 ThreadTimesClosure(objArrayHandle names, typeArrayHandle times); 1862 ~ThreadTimesClosure(); 1863 virtual void do_thread(Thread* thread); 1864 void do_unlocked(); 1865 int count() { return _count; } 1866 }; |