--- a/hotspot/src/share/vm/runtime/commandLineFlagConstraintList.cpp Wed Sep 02 11:41:42 2015 -0400
+++ b/hotspot/src/share/vm/runtime/commandLineFlagConstraintList.cpp Wed Sep 02 17:49:46 2015 -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<CommandLineFlagConstraint*>* 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;