120 uint8_t update = 0, uint8_t special = 0, uint8_t build = 0,
121 bool thread_park_blocker = false, bool post_vm_init_hook_enabled = false) :
122 _major(major), _minor(minor), _micro(micro), _update(update),
123 _special(special), _build(build), _partially_initialized(false),
124 _thread_park_blocker(thread_park_blocker),
125 _post_vm_init_hook_enabled(post_vm_init_hook_enabled)
126 {}
127
128 // Returns the current running JDK version
129 static JDK_Version current() { return _current; }
130
131 // Factory methods for convenience
132 static JDK_Version jdk(uint8_t m) {
133 return JDK_Version(m);
134 }
135
136 static JDK_Version jdk_update(uint8_t major, uint8_t update_number) {
137 return JDK_Version(major, 0, 0, update_number);
138 }
139
140 uint8_t major_version() const { return _major; }
141 uint8_t minor_version() const { return _minor; }
142 uint8_t micro_version() const { return _micro; }
143 uint8_t update_version() const { return _update; }
144 uint8_t special_update_version() const { return _special; }
145 uint8_t build_number() const { return _build; }
146
147 bool supports_thread_park_blocker() const {
148 return _thread_park_blocker;
149 }
150 bool post_vm_init_hook_enabled() const {
151 return _post_vm_init_hook_enabled;
152 }
153
154 // Performs a full ordering comparison using all fields (update, build, etc.)
155 int compare(const JDK_Version& other) const;
156
157 /**
158 * Performs comparison using only the major version, returning negative
159 * if the major version of 'this' is less than the parameter, 0 if it is
|
120 uint8_t update = 0, uint8_t special = 0, uint8_t build = 0,
121 bool thread_park_blocker = false, bool post_vm_init_hook_enabled = false) :
122 _major(major), _minor(minor), _micro(micro), _update(update),
123 _special(special), _build(build), _partially_initialized(false),
124 _thread_park_blocker(thread_park_blocker),
125 _post_vm_init_hook_enabled(post_vm_init_hook_enabled)
126 {}
127
128 // Returns the current running JDK version
129 static JDK_Version current() { return _current; }
130
131 // Factory methods for convenience
132 static JDK_Version jdk(uint8_t m) {
133 return JDK_Version(m);
134 }
135
136 static JDK_Version jdk_update(uint8_t major, uint8_t update_number) {
137 return JDK_Version(major, 0, 0, update_number);
138 }
139
140 static JDK_Version undefined() {
141 return JDK_Version(0);
142 }
143
144 bool is_undefined() const {
145 return (_major == 0);
146 }
147
148 uint8_t major_version() const { return _major; }
149 uint8_t minor_version() const { return _minor; }
150 uint8_t micro_version() const { return _micro; }
151 uint8_t update_version() const { return _update; }
152 uint8_t special_update_version() const { return _special; }
153 uint8_t build_number() const { return _build; }
154
155 bool supports_thread_park_blocker() const {
156 return _thread_park_blocker;
157 }
158 bool post_vm_init_hook_enabled() const {
159 return _post_vm_init_hook_enabled;
160 }
161
162 // Performs a full ordering comparison using all fields (update, build, etc.)
163 int compare(const JDK_Version& other) const;
164
165 /**
166 * Performs comparison using only the major version, returning negative
167 * if the major version of 'this' is less than the parameter, 0 if it is
|