< prev index next >

src/hotspot/share/runtime/flags/flagSetting.hpp

Print this page




  39   FlagSetting(bool& fl, bool newValue) { flag = &fl; val = fl; fl = newValue; }
  40   ~FlagSetting()                       { *flag = val; }
  41 };
  42 
  43 class UIntFlagSetting : public StackObj {
  44   uint val;
  45   uint* flag;
  46 public:
  47   UIntFlagSetting(uint& fl, uint newValue) { flag = &fl; val = fl; fl = newValue; }
  48   ~UIntFlagSetting()                       { *flag = val; }
  49 };
  50 
  51 class SizeTFlagSetting : public StackObj {
  52   size_t val;
  53   size_t* flag;
  54 public:
  55   SizeTFlagSetting(size_t& fl, size_t newValue) { flag = &fl; val = fl; fl = newValue; }
  56   ~SizeTFlagSetting()                           { *flag = val; }
  57 };
  58 
  59 // Helper class for temporarily saving the value of a flag during a scope.
  60 template <size_t SIZE>
  61 class FlagGuard {
  62   unsigned char _value[SIZE];
  63   void* const _addr;
  64 public:
  65   FlagGuard(void* flag_addr) : _addr(flag_addr) { memcpy(_value, _addr, SIZE); }
  66   ~FlagGuard()                                  { memcpy(_addr, _value, SIZE); }
  67 };
  68 
  69 #define FLAG_GUARD(f) FlagGuard<sizeof(f)> f ## _guard(&f)
  70 
  71 #endif // SHARE_VM_RUNTIME_FLAGS_FLAGSETTING_HPP


  39   FlagSetting(bool& fl, bool newValue) { flag = &fl; val = fl; fl = newValue; }
  40   ~FlagSetting()                       { *flag = val; }
  41 };
  42 
  43 class UIntFlagSetting : public StackObj {
  44   uint val;
  45   uint* flag;
  46 public:
  47   UIntFlagSetting(uint& fl, uint newValue) { flag = &fl; val = fl; fl = newValue; }
  48   ~UIntFlagSetting()                       { *flag = val; }
  49 };
  50 
  51 class SizeTFlagSetting : public StackObj {
  52   size_t val;
  53   size_t* flag;
  54 public:
  55   SizeTFlagSetting(size_t& fl, size_t newValue) { flag = &fl; val = fl; fl = newValue; }
  56   ~SizeTFlagSetting()                           { *flag = val; }
  57 };
  58 












  59 #endif // SHARE_VM_RUNTIME_FLAGS_FLAGSETTING_HPP
< prev index next >