Mercurial > hg > truffle
comparison src/share/vm/runtime/globals.cpp @ 372:be41fa651400
Merge
author | rasbold |
---|---|
date | Tue, 30 Sep 2008 15:53:55 -0700 |
parents | 1ee8caae33af 885fe0f95828 |
children | 473cce303f13 |
comparison
equal
deleted
inserted
replaced
365:5f44674206d3 | 372:be41fa651400 |
---|---|
363 bool CommandLineFlags::ccstrAtPut(char* name, size_t len, ccstr* value, FlagValueOrigin origin) { | 363 bool CommandLineFlags::ccstrAtPut(char* name, size_t len, ccstr* value, FlagValueOrigin origin) { |
364 Flag* result = Flag::find_flag(name, len); | 364 Flag* result = Flag::find_flag(name, len); |
365 if (result == NULL) return false; | 365 if (result == NULL) return false; |
366 if (!result->is_ccstr()) return false; | 366 if (!result->is_ccstr()) return false; |
367 ccstr old_value = result->get_ccstr(); | 367 ccstr old_value = result->get_ccstr(); |
368 char* new_value = NEW_C_HEAP_ARRAY(char, strlen(*value)+1); | 368 char* new_value = NULL; |
369 strcpy(new_value, *value); | 369 if (*value != NULL) { |
370 new_value = NEW_C_HEAP_ARRAY(char, strlen(*value)+1); | |
371 strcpy(new_value, *value); | |
372 } | |
370 result->set_ccstr(new_value); | 373 result->set_ccstr(new_value); |
371 if (result->origin == DEFAULT && old_value != NULL) { | 374 if (result->origin == DEFAULT && old_value != NULL) { |
372 // Prior value is NOT heap allocated, but was a literal constant. | 375 // Prior value is NOT heap allocated, but was a literal constant. |
373 char* old_value_to_free = NEW_C_HEAP_ARRAY(char, strlen(old_value)+1); | 376 char* old_value_to_free = NEW_C_HEAP_ARRAY(char, strlen(old_value)+1); |
374 strcpy(old_value_to_free, old_value); | 377 strcpy(old_value_to_free, old_value); |