37 * constant and can not change. If either "min" or "max" can change, |
37 * constant and can not change. If either "min" or "max" can change, |
38 * then we need to use constraint instead. |
38 * then we need to use constraint instead. |
39 */ |
39 */ |
40 |
40 |
41 class JVMFlagRange : public CHeapObj<mtArguments> { |
41 class JVMFlagRange : public CHeapObj<mtArguments> { |
42 private: |
42 protected: |
43 const char* _name; |
43 const JVMFlag* const _flag; |
44 public: |
44 public: |
45 // the "name" argument must be a string literal |
45 // the "name" argument must be a string literal |
46 JVMFlagRange(const char* name) { _name=name; } |
46 JVMFlagRange(const JVMFlag* flag) : _flag(flag) {} |
47 ~JVMFlagRange() {} |
47 ~JVMFlagRange() {} |
48 const char* name() { return _name; } |
48 const JVMFlag* flag() const { return _flag; } |
|
49 const char* name() const { return _flag->_name; } |
49 virtual JVMFlag::Error check(bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } |
50 virtual JVMFlag::Error check(bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } |
50 virtual JVMFlag::Error check_int(int value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } |
51 virtual JVMFlag::Error check_int(int value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } |
51 virtual JVMFlag::Error check_intx(intx value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } |
52 virtual JVMFlag::Error check_intx(intx value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } |
52 virtual JVMFlag::Error check_uint(uint value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } |
53 virtual JVMFlag::Error check_uint(uint value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } |
53 virtual JVMFlag::Error check_uintx(uintx value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } |
54 virtual JVMFlag::Error check_uintx(uintx value, bool verbose = true) { ShouldNotReachHere(); return JVMFlag::ERR_OTHER; } |
61 static GrowableArray<JVMFlagRange*>* _ranges; |
62 static GrowableArray<JVMFlagRange*>* _ranges; |
62 public: |
63 public: |
63 static void init(); |
64 static void init(); |
64 static int length() { return (_ranges != NULL) ? _ranges->length() : 0; } |
65 static int length() { return (_ranges != NULL) ? _ranges->length() : 0; } |
65 static JVMFlagRange* at(int i) { return (_ranges != NULL) ? _ranges->at(i) : NULL; } |
66 static JVMFlagRange* at(int i) { return (_ranges != NULL) ? _ranges->at(i) : NULL; } |
66 static JVMFlagRange* find(const char* name); |
67 static JVMFlagRange* find(const JVMFlag* flag); |
67 static void add(JVMFlagRange* range) { _ranges->append(range); } |
68 static void add(JVMFlagRange* range) { _ranges->append(range); } |
68 static void print(outputStream* st, const char* name, RangeStrFunc default_range_str_func); |
69 static void print(outputStream* st, const JVMFlag* flag, RangeStrFunc default_range_str_func); |
69 // Check the final values of all flags for ranges. |
70 // Check the final values of all flags for ranges. |
70 static bool check_ranges(); |
71 static bool check_ranges(); |
71 }; |
72 }; |
72 |
73 |
73 #endif // SHARE_RUNTIME_FLAGS_JVMFLAGRANGELIST_HPP |
74 #endif // SHARE_RUNTIME_FLAGS_JVMFLAGRANGELIST_HPP |