< prev index next >

src/hotspot/share/gc/g1/g1Arguments.cpp

Print this page
rev 52814 : 8214773: Replace use of thread unsafe strtok
Reviewed-by:

*** 30,55 **** #include "gc/g1/g1HeapVerifier.hpp" #include "gc/g1/heapRegion.hpp" #include "gc/shared/gcArguments.inline.hpp" #include "runtime/globals.hpp" #include "runtime/globals_extension.hpp" #include "runtime/vm_version.hpp" size_t G1Arguments::conservative_max_heap_alignment() { return HeapRegion::max_region_size(); } void G1Arguments::initialize_verification_types() { if (strlen(VerifyGCType) > 0) { const char delimiter[] = " ,\n"; size_t length = strlen(VerifyGCType); char* type_list = NEW_C_HEAP_ARRAY(char, length + 1, mtInternal); strncpy(type_list, VerifyGCType, length + 1); ! char* token = strtok(type_list, delimiter); while (token != NULL) { parse_verification_type(token); ! token = strtok(NULL, delimiter); } FREE_C_HEAP_ARRAY(char, type_list); } } --- 30,57 ---- #include "gc/g1/g1HeapVerifier.hpp" #include "gc/g1/heapRegion.hpp" #include "gc/shared/gcArguments.inline.hpp" #include "runtime/globals.hpp" #include "runtime/globals_extension.hpp" + #include "runtime/os.inline.hpp" #include "runtime/vm_version.hpp" size_t G1Arguments::conservative_max_heap_alignment() { return HeapRegion::max_region_size(); } void G1Arguments::initialize_verification_types() { if (strlen(VerifyGCType) > 0) { const char delimiter[] = " ,\n"; + char *save_ptr; size_t length = strlen(VerifyGCType); char* type_list = NEW_C_HEAP_ARRAY(char, length + 1, mtInternal); strncpy(type_list, VerifyGCType, length + 1); ! char* token = os::strtok(type_list, delimiter, &save_ptr); while (token != NULL) { parse_verification_type(token); ! token = os::strtok(NULL, delimiter, &save_ptr); } FREE_C_HEAP_ARRAY(char, type_list); } }
< prev index next >