# HG changeset patch # User brutisso # Date 1367526915 -7200 # Node ID 1d0fba8a2a6d3532c64ae6b91161bbebda2194e2 # Parent 9075044ed66b0a4f28746c7ff5c7d438e34f1d1d 8013574: PrintMalloc conflicts with the command line parsing Summary: Make sure that _num_jvm_args is not updated until the new entry to _jvm_args_array has been added Reviewed-by: johnc, tamao, tschatzl diff -r 9075044ed66b -r 1d0fba8a2a6d src/share/vm/runtime/arguments.cpp --- a/src/share/vm/runtime/arguments.cpp Tue Apr 30 16:36:24 2013 +0200 +++ b/src/share/vm/runtime/arguments.cpp Thu May 02 22:35:15 2013 +0200 @@ -747,16 +747,16 @@ return; } - int index = *count; + int new_count = *count + 1; // expand the array and add arg to the last element - (*count)++; if (*bldarray == NULL) { - *bldarray = NEW_C_HEAP_ARRAY(char*, *count, mtInternal); + *bldarray = NEW_C_HEAP_ARRAY(char*, new_count, mtInternal); } else { - *bldarray = REALLOC_C_HEAP_ARRAY(char*, *bldarray, *count, mtInternal); + *bldarray = REALLOC_C_HEAP_ARRAY(char*, *bldarray, new_count, mtInternal); } - (*bldarray)[index] = strdup(arg); + (*bldarray)[*count] = strdup(arg); + *count = new_count; } void Arguments::build_jvm_args(const char* arg) {