Mercurial > hg > truffle
comparison src/share/vm/services/management.cpp @ 14183:6c583aa36bc9
8029070: memory leak in jmm_SetVMGlobal
Reviewed-by: kvn, dholmes
author | iignatyev |
---|---|
date | Mon, 23 Dec 2013 20:56:18 +0400 |
parents | e4f478e7781b |
children | 1a899ea6b7ed |
comparison
equal
deleted
inserted
replaced
14181:27c84ba76954 | 14183:6c583aa36bc9 |
---|---|
1819 if (!flag->is_writeable()) { | 1819 if (!flag->is_writeable()) { |
1820 THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), | 1820 THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), |
1821 "This flag is not writeable."); | 1821 "This flag is not writeable."); |
1822 } | 1822 } |
1823 | 1823 |
1824 bool succeed; | 1824 bool succeed = false; |
1825 if (flag->is_bool()) { | 1825 if (flag->is_bool()) { |
1826 bool bvalue = (new_value.z == JNI_TRUE ? true : false); | 1826 bool bvalue = (new_value.z == JNI_TRUE ? true : false); |
1827 succeed = CommandLineFlags::boolAtPut(name, &bvalue, Flag::MANAGEMENT); | 1827 succeed = CommandLineFlags::boolAtPut(name, &bvalue, Flag::MANAGEMENT); |
1828 } else if (flag->is_intx()) { | 1828 } else if (flag->is_intx()) { |
1829 intx ivalue = (intx)new_value.j; | 1829 intx ivalue = (intx)new_value.j; |
1839 if (str == NULL) { | 1839 if (str == NULL) { |
1840 THROW(vmSymbols::java_lang_NullPointerException()); | 1840 THROW(vmSymbols::java_lang_NullPointerException()); |
1841 } | 1841 } |
1842 ccstr svalue = java_lang_String::as_utf8_string(str); | 1842 ccstr svalue = java_lang_String::as_utf8_string(str); |
1843 succeed = CommandLineFlags::ccstrAtPut(name, &svalue, Flag::MANAGEMENT); | 1843 succeed = CommandLineFlags::ccstrAtPut(name, &svalue, Flag::MANAGEMENT); |
1844 if (succeed) { | |
1845 FREE_C_HEAP_ARRAY(char, svalue, mtInternal); | |
1846 } | |
1844 } | 1847 } |
1845 assert(succeed, "Setting flag should succeed"); | 1848 assert(succeed, "Setting flag should succeed"); |
1846 JVM_END | 1849 JVM_END |
1847 | 1850 |
1848 class ThreadTimesClosure: public ThreadClosure { | 1851 class ThreadTimesClosure: public ThreadClosure { |