273 |
273 |
274 bool is_uint64_t() const; |
274 bool is_uint64_t() const; |
275 uint64_t get_uint64_t() const; |
275 uint64_t get_uint64_t() const; |
276 void set_uint64_t(uint64_t value); |
276 void set_uint64_t(uint64_t value); |
277 |
277 |
|
278 bool is_size_t() const; |
|
279 size_t get_size_t() const; |
|
280 void set_size_t(size_t value); |
|
281 |
278 bool is_double() const; |
282 bool is_double() const; |
279 double get_double() const; |
283 double get_double() const; |
280 void set_double(double value); |
284 void set_double(double value); |
281 |
285 |
282 bool is_ccstr() const; |
286 bool is_ccstr() const; |
348 public: |
352 public: |
349 UIntFlagSetting(uintx& fl, uintx newValue) { flag = &fl; val = fl; fl = newValue; } |
353 UIntFlagSetting(uintx& fl, uintx newValue) { flag = &fl; val = fl; fl = newValue; } |
350 ~UIntFlagSetting() { *flag = val; } |
354 ~UIntFlagSetting() { *flag = val; } |
351 }; |
355 }; |
352 |
356 |
353 |
|
354 class DoubleFlagSetting { |
357 class DoubleFlagSetting { |
355 double val; |
358 double val; |
356 double* flag; |
359 double* flag; |
357 public: |
360 public: |
358 DoubleFlagSetting(double& fl, double newValue) { flag = &fl; val = fl; fl = newValue; } |
361 DoubleFlagSetting(double& fl, double newValue) { flag = &fl; val = fl; fl = newValue; } |
359 ~DoubleFlagSetting() { *flag = val; } |
362 ~DoubleFlagSetting() { *flag = val; } |
360 }; |
363 }; |
361 |
364 |
|
365 class SizeTFlagSetting { |
|
366 size_t val; |
|
367 size_t* flag; |
|
368 public: |
|
369 SizeTFlagSetting(size_t& fl, size_t newValue) { flag = &fl; val = fl; fl = newValue; } |
|
370 ~SizeTFlagSetting() { *flag = val; } |
|
371 }; |
|
372 |
362 |
373 |
363 class CommandLineFlags { |
374 class CommandLineFlags { |
364 public: |
375 public: |
365 static bool boolAt(const char* name, size_t len, bool* value); |
376 static bool boolAt(const char* name, size_t len, bool* value); |
366 static bool boolAt(const char* name, bool* value) { return boolAt(name, strlen(name), value); } |
377 static bool boolAt(const char* name, bool* value) { return boolAt(name, strlen(name), value); } |
374 |
385 |
375 static bool uintxAt(const char* name, size_t len, uintx* value); |
386 static bool uintxAt(const char* name, size_t len, uintx* value); |
376 static bool uintxAt(const char* name, uintx* value) { return uintxAt(name, strlen(name), value); } |
387 static bool uintxAt(const char* name, uintx* value) { return uintxAt(name, strlen(name), value); } |
377 static bool uintxAtPut(const char* name, size_t len, uintx* value, Flag::Flags origin); |
388 static bool uintxAtPut(const char* name, size_t len, uintx* value, Flag::Flags origin); |
378 static bool uintxAtPut(const char* name, uintx* value, Flag::Flags origin) { return uintxAtPut(name, strlen(name), value, origin); } |
389 static bool uintxAtPut(const char* name, uintx* value, Flag::Flags origin) { return uintxAtPut(name, strlen(name), value, origin); } |
|
390 |
|
391 static bool size_tAt(const char* name, size_t len, size_t* value); |
|
392 static bool size_tAt(const char* name, size_t* value) { return size_tAt(name, strlen(name), value); } |
|
393 static bool size_tAtPut(const char* name, size_t len, size_t* value, Flag::Flags origin); |
|
394 static bool size_tAtPut(const char* name, size_t* value, Flag::Flags origin) { return size_tAtPut(name, strlen(name), value, origin); } |
379 |
395 |
380 static bool uint64_tAt(const char* name, size_t len, uint64_t* value); |
396 static bool uint64_tAt(const char* name, size_t len, uint64_t* value); |
381 static bool uint64_tAt(const char* name, uint64_t* value) { return uint64_tAt(name, strlen(name), value); } |
397 static bool uint64_tAt(const char* name, uint64_t* value) { return uint64_tAt(name, strlen(name), value); } |
382 static bool uint64_tAtPut(const char* name, size_t len, uint64_t* value, Flag::Flags origin); |
398 static bool uint64_tAtPut(const char* name, size_t len, uint64_t* value, Flag::Flags origin); |
383 static bool uint64_tAtPut(const char* name, uint64_t* value, Flag::Flags origin) { return uint64_tAtPut(name, strlen(name), value, origin); } |
399 static bool uint64_tAtPut(const char* name, uint64_t* value, Flag::Flags origin) { return uint64_tAtPut(name, strlen(name), value, origin); } |
3881 "Obey the ACC_SUPER flag and allow invokenonvirtual calls") \ |
3897 "Obey the ACC_SUPER flag and allow invokenonvirtual calls") \ |
3882 \ |
3898 \ |
3883 diagnostic(ccstr, SharedArchiveFile, NULL, \ |
3899 diagnostic(ccstr, SharedArchiveFile, NULL, \ |
3884 "Override the default location of the CDS archive file") \ |
3900 "Override the default location of the CDS archive file") \ |
3885 \ |
3901 \ |
3886 experimental(uintx, ArrayAllocatorMallocLimit, \ |
3902 experimental(size_t, ArrayAllocatorMallocLimit, \ |
3887 SOLARIS_ONLY(64*K) NOT_SOLARIS(max_uintx), \ |
3903 SOLARIS_ONLY(64*K) NOT_SOLARIS((size_t)-1), \ |
3888 "Allocation less than this value will be allocated " \ |
3904 "Allocation less than this value will be allocated " \ |
3889 "using malloc. Larger allocations will use mmap.") \ |
3905 "using malloc. Larger allocations will use mmap.") \ |
3890 \ |
3906 \ |
3891 experimental(bool, AlwaysAtomicAccesses, false, \ |
3907 experimental(bool, AlwaysAtomicAccesses, false, \ |
3892 "Accesses to all variables should always be atomic") \ |
3908 "Accesses to all variables should always be atomic") \ |