--- old/src/share/vm/runtime/commandLineFlagConstraintList.hpp 2015-06-16 15:48:00.000000000 -0500 +++ new/src/share/vm/runtime/commandLineFlagConstraintList.hpp 2015-06-16 15:48:00.000000000 -0500 @@ -49,22 +49,25 @@ typedef Flag::Error (*CommandLineFlagConstraintFunc_double)(bool verbose, double* value); class CommandLineFlagConstraint : public CHeapObj { -public: +private: const char* _name; +public: + // the "name" argument must be a string literal CommandLineFlagConstraint(const char* name) { _name=name; }; ~CommandLineFlagConstraint() {}; const char* name() { return _name; } - virtual Flag::Error apply_bool(bool* value, bool verbose = true) { return Flag::SUCCESS; }; - virtual Flag::Error apply_int(int* value, bool verbose = true) { return Flag::SUCCESS; }; - virtual Flag::Error apply_intx(intx* value, bool verbose = true) { return Flag::SUCCESS; }; - virtual Flag::Error apply_uint(uint* value, bool verbose = true) { return Flag::SUCCESS; }; - virtual Flag::Error apply_uintx(uintx* value, bool verbose = true) { return Flag::SUCCESS; }; - virtual Flag::Error apply_uint64_t(uint64_t* value, bool verbose = true) { return Flag::SUCCESS; }; - virtual Flag::Error apply_size_t(size_t* value, bool verbose = true) { return Flag::SUCCESS; }; - virtual Flag::Error apply_double(double* value, bool verbose = true) { return Flag::SUCCESS; }; + virtual Flag::Error apply_bool(bool* value, bool verbose = true) { ShouldNotReachHere(); return Flag::ERR_OTHER; }; + virtual Flag::Error apply_int(int* value, bool verbose = true) { ShouldNotReachHere(); return Flag::ERR_OTHER; }; + virtual Flag::Error apply_intx(intx* value, bool verbose = true) { ShouldNotReachHere(); return Flag::ERR_OTHER; }; + virtual Flag::Error apply_uint(uint* value, bool verbose = true) { ShouldNotReachHere(); return Flag::ERR_OTHER; }; + virtual Flag::Error apply_uintx(uintx* value, bool verbose = true) { ShouldNotReachHere(); return Flag::ERR_OTHER; }; + virtual Flag::Error apply_uint64_t(uint64_t* value, bool verbose = true) { ShouldNotReachHere(); return Flag::ERR_OTHER; }; + virtual Flag::Error apply_size_t(size_t* value, bool verbose = true) { ShouldNotReachHere(); return Flag::ERR_OTHER; }; + virtual Flag::Error apply_double(double* value, bool verbose = true) { ShouldNotReachHere(); return Flag::ERR_OTHER; }; }; -class CommandLineFlagConstraintList : public CHeapObj { +class CommandLineFlagConstraintList : public AllStatic { +private: static GrowableArray* _constraints; public: static void init();