--- old/src/share/vm/runtime/commandLineFlagConstraintList.cpp 2015-09-02 17:20:19.758143827 -0700 +++ new/src/share/vm/runtime/commandLineFlagConstraintList.cpp 2015-09-02 17:20:19.618143832 -0700 @@ -220,7 +220,7 @@ #define EMIT_CONSTRAINT_CHECK(func, type) , func, CommandLineFlagConstraint::type // the "name" argument must be a string literal -#define INITIAL_CONSTRAINTS_SIZE 40 +#define INITIAL_CONSTRAINTS_SIZE 16 GrowableArray* CommandLineFlagConstraintList::_constraints = NULL; CommandLineFlagConstraint::ConstraintType CommandLineFlagConstraintList::_validating_type = CommandLineFlagConstraint::AtParse; @@ -274,7 +274,7 @@ EMIT_CONSTRAINT_CHECK)); #endif // COMPILER2 -#if INCLUDE_ALL_GCS +#ifndef INCLUDE_ALL_GCS emit_constraint_no(NULL G1_FLAGS(EMIT_CONSTRAINT_DEVELOPER_FLAG, EMIT_CONSTRAINT_PD_DEVELOPER_FLAG, EMIT_CONSTRAINT_PRODUCT_FLAG, @@ -305,7 +305,10 @@ // Check constraints for specific constraint type. bool CommandLineFlagConstraintList::check_constraints(CommandLineFlagConstraint::ConstraintType type) { - guarantee(type > _validating_type, "Constraint check is out of order."); + // Skip if we already checked. + if (type < _validating_type) { + return true; + } _validating_type = type; bool status = true;