# HG changeset patch # User Doug Simon # Date 1403903099 -7200 # Node ID 5cdcb94a7cf7d9782107cc582f3e4b50000d5d1f # Parent 7af7db0bbfe93bfecd81f233dcb4e356815cd1a6 clarify option checking code from option parsing code diff -r 7af7db0bbfe9 -r 5cdcb94a7cf7 graal/com.oracle.graal.hotspot.sourcegen/src/com/oracle/graal/hotspot/sourcegen/GenGraalRuntimeInlineHpp.java --- a/graal/com.oracle.graal.hotspot.sourcegen/src/com/oracle/graal/hotspot/sourcegen/GenGraalRuntimeInlineHpp.java Fri Jun 27 23:00:27 2014 +0200 +++ b/graal/com.oracle.graal.hotspot.sourcegen/src/com/oracle/graal/hotspot/sourcegen/GenGraalRuntimeInlineHpp.java Fri Jun 27 23:04:59 2014 +0200 @@ -141,6 +141,7 @@ lengths.add("PrintFlags".length()); out.println("bool GraalRuntime::set_option(KlassHandle hotSpotOptionsClass, char* name, int name_len, const char* value, TRAPS) {"); + out.println(" bool check_only = hotSpotOptionsClass.is_null();"); out.println(" if (value != NULL && (value[0] == '+' || value[0] == '-')) {"); out.println(" // boolean options"); genMatchers(out, lengths, options, true); @@ -164,7 +165,7 @@ out.println(" case " + len + ":"); out.printf(" if (strncmp(name, \"PrintFlags\", %d) == 0) {%n", len); out.println(" if (value[0] == '+') {"); - out.println(" if (hotSpotOptionsClass.is_null()) {"); + out.println(" if (check_only) {"); out.println(" TempNewSymbol name = SymbolTable::new_symbol(\"Lcom/oracle/graal/hotspot/HotSpotOptions;\", THREAD);"); out.println(" hotSpotOptionsClass = SystemDictionary::resolve_or_fail(name, true, CHECK_(true));"); out.println(" }"); @@ -185,21 +186,21 @@ if (isBoolean) { out.printf(" Handle option = get_OptionValue(\"L%s;\", \"%s\", \"L%s;\", CHECK_(true));%n", toInternalName(declaringClass), desc.getFieldName(), toInternalName(getFieldType(desc))); - out.println(" if (!hotSpotOptionsClass.is_null()) {"); + out.println(" if (!check_only) {"); out.println(" set_option_helper(hotSpotOptionsClass, name, name_len, option, value[0], Handle(), 0L);"); out.println(" }"); } else if (desc.getType() == String.class) { out.println(" check_required_value(name, name_len, value, CHECK_(true));"); out.printf(" Handle option = get_OptionValue(\"L%s;\", \"%s\", \"L%s;\", CHECK_(true));%n", toInternalName(declaringClass), desc.getFieldName(), toInternalName(getFieldType(desc))); - out.println(" if (!hotSpotOptionsClass.is_null()) {"); + out.println(" if (!check_only) {"); out.println(" Handle stringValue = java_lang_String::create_from_str(value, CHECK_(true));"); out.println(" set_option_helper(hotSpotOptionsClass, name, name_len, option, 's', stringValue, 0L);"); out.println(" }"); } else { char spec = getPrimitiveSpecChar(desc); out.println(" jlong primitiveValue = parse_primitive_option_value('" + spec + "', name, name_len, value, CHECK_(true));"); - out.println(" if (!hotSpotOptionsClass.is_null()) {"); + out.println(" if (!check_only) {"); out.printf(" Handle option = get_OptionValue(\"L%s;\", \"%s\", \"L%s;\", CHECK_(true));%n", toInternalName(declaringClass), desc.getFieldName(), toInternalName(getFieldType(desc))); out.println(" set_option_helper(hotSpotOptionsClass, name, name_len, option, '" + spec + "', Handle(), primitiveValue);");