Use constexpr instead of const in symbol definitions that are obviously constexpr.
[WebKit-https.git] / Source / JavaScriptCore / runtime / GenericOffset.h
index a6bfe56..0154da6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015 Apple Inc. All rights reserved.
+ * Copyright (C) 2015-2019 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -23,8 +23,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
  */
 
-#ifndef GenericOffset_h
-#define GenericOffset_h
+#pragma once
 
 #include <limits.h>
 #include <wtf/Assertions.h>
@@ -34,8 +33,9 @@ namespace JSC {
 // A mixin for creating the various kinds of variable offsets that our engine supports.
 template<typename T>
 class GenericOffset {
+    WTF_MAKE_FAST_ALLOCATED;
 public:
-    static const unsigned invalidOffset = UINT_MAX;
+    static constexpr unsigned invalidOffset = UINT_MAX;
     
     GenericOffset()
         : m_offset(invalidOffset)
@@ -95,11 +95,11 @@ public:
     }
     T& operator+=(int value)
     {
-        return *this = *this + value;
+        return *static_cast<T*>(this) = *this + value;
     }
     T& operator-=(int value)
     {
-        return *this = *this - value;
+        return *static_cast<T*>(this) = *this - value;
     }
     
 private:
@@ -107,6 +107,3 @@ private:
 };
 
 } // namespace JSC
-
-#endif // GenericOffset_h
-