Mercurial > hg > graal-compiler
comparison src/share/vm/runtime/globals.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 | b7cd330fd5b6 |
children | 234d576115b5 |
comparison
equal
deleted
inserted
replaced
14181:27c84ba76954 | 14183:6c583aa36bc9 |
---|---|
700 if (!result->is_ccstr()) return false; | 700 if (!result->is_ccstr()) return false; |
701 *value = result->get_ccstr(); | 701 *value = result->get_ccstr(); |
702 return true; | 702 return true; |
703 } | 703 } |
704 | 704 |
705 // Contract: Flag will make private copy of the incoming value. | |
706 // Outgoing value is always malloc-ed, and caller MUST call free. | |
707 bool CommandLineFlags::ccstrAtPut(char* name, size_t len, ccstr* value, Flag::Flags origin) { | 705 bool CommandLineFlags::ccstrAtPut(char* name, size_t len, ccstr* value, Flag::Flags origin) { |
708 Flag* result = Flag::find_flag(name, len); | 706 Flag* result = Flag::find_flag(name, len); |
709 if (result == NULL) return false; | 707 if (result == NULL) return false; |
710 if (!result->is_ccstr()) return false; | 708 if (!result->is_ccstr()) return false; |
711 ccstr old_value = result->get_ccstr(); | 709 ccstr old_value = result->get_ccstr(); |
724 *value = old_value; | 722 *value = old_value; |
725 result->set_origin(origin); | 723 result->set_origin(origin); |
726 return true; | 724 return true; |
727 } | 725 } |
728 | 726 |
729 // Contract: Flag will make private copy of the incoming value. | |
730 void CommandLineFlagsEx::ccstrAtPut(CommandLineFlagWithType flag, ccstr value, Flag::Flags origin) { | 727 void CommandLineFlagsEx::ccstrAtPut(CommandLineFlagWithType flag, ccstr value, Flag::Flags origin) { |
731 Flag* faddr = address_of_flag(flag); | 728 Flag* faddr = address_of_flag(flag); |
732 guarantee(faddr != NULL && faddr->is_ccstr(), "wrong flag type"); | 729 guarantee(faddr != NULL && faddr->is_ccstr(), "wrong flag type"); |
733 ccstr old_value = faddr->get_ccstr(); | 730 ccstr old_value = faddr->get_ccstr(); |
734 char* new_value = NEW_C_HEAP_ARRAY(char, strlen(value)+1, mtInternal); | 731 char* new_value = NEW_C_HEAP_ARRAY(char, strlen(value)+1, mtInternal); |