--- old/src/hotspot/share/runtime/flags/jvmFlagConstraintList.cpp 2020-06-26 01:00:56.732980293 +0000 +++ new/src/hotspot/share/runtime/flags/jvmFlagConstraintList.cpp 2020-06-26 01:00:56.428976045 +0000 @@ -172,6 +172,23 @@ } }; +class JVMFlagConstraint_ccstrlist : public JVMFlagConstraint { + JVMFlagConstraintFunc_ccstrlist _constraint; + +public: + JVMFlagConstraint_ccstrlist(const JVMFlag* flag, + JVMFlagConstraintFunc_ccstrlist func, + ConstraintType type) : JVMFlagConstraint(flag, type), _constraint(func) {} + + JVMFlag::Error apply(bool verbose) { + return _constraint(_flag->get_ccstr(), verbose); + } + + JVMFlag::Error apply_ccstrlist(ccstrlist value, bool verbose) { + return _constraint(value, verbose); + } +}; + // No constraint emitting void emit_constraint_no(...) { /* NOP */ } @@ -212,6 +229,9 @@ void emit_constraint_double(const JVMFlag* flag, JVMFlagConstraintFunc_double func, JVMFlagConstraint::ConstraintType type) { JVMFlagConstraintList::add(new JVMFlagConstraint_double(flag, func, type)); } +void emit_constraint_ccstrlist(const JVMFlag* flag, JVMFlagConstraintFunc_ccstrlist func, JVMFlagConstraint::ConstraintType type) { + JVMFlagConstraintList::add(new JVMFlagConstraint_ccstrlist(flag, func, type)); +} // Generate code to call emit_constraint_xxx function #define EMIT_CONSTRAINT_START (void)(0