[JSC] Optimize layout of SourceProvider to reduce padding
authorutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 8 Jul 2018 12:29:08 +0000 (12:29 +0000)
committerutatane.tea@gmail.com <utatane.tea@gmail.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 8 Jul 2018 12:29:08 +0000 (12:29 +0000)
https://bugs.webkit.org/show_bug.cgi?id=187440

Reviewed by Mark Lam.

Arrange members of SourceProvider to reduce the size from 80 to 72.

* parser/SourceProvider.cpp:
(JSC::SourceProvider::SourceProvider):
* parser/SourceProvider.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@233626 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/parser/SourceProvider.cpp
Source/JavaScriptCore/parser/SourceProvider.h

index 6111e11..d105f19 100644 (file)
@@ -1,3 +1,16 @@
+2018-07-07  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        [JSC] Optimize layout of SourceProvider to reduce padding
+        https://bugs.webkit.org/show_bug.cgi?id=187440
+
+        Reviewed by Mark Lam.
+
+        Arrange members of SourceProvider to reduce the size from 80 to 72.
+
+        * parser/SourceProvider.cpp:
+        (JSC::SourceProvider::SourceProvider):
+        * parser/SourceProvider.h:
+
 2018-07-08  Mark Lam  <mark.lam@apple.com>
 
         PropertyTable::skipDeletedEntries() should guard against iterating past the table end.
index 9a13eb2..5f97aa4 100644 (file)
 namespace JSC {
 
 SourceProvider::SourceProvider(const SourceOrigin& sourceOrigin, const String& url, const TextPosition& startPosition, SourceProviderSourceType sourceType)
-    : m_sourceOrigin(sourceOrigin)
+    : m_sourceType(sourceType)
+    , m_validated(false)
+    , m_sourceOrigin(sourceOrigin)
     , m_url(url)
     , m_startPosition(startPosition)
-    , m_sourceType(sourceType)
-    , m_validated(false)
-    , m_id(0)
 {
 }
 
@@ -53,6 +52,7 @@ void SourceProvider::getID()
     if (!m_id) {
         static intptr_t nextProviderID = 0;
         m_id = ++nextProviderID;
+        RELEASE_ASSERT(m_id);
     }
 }
 
index 0d0c2fc..04f2673 100644 (file)
@@ -35,7 +35,7 @@
 
 namespace JSC {
 
-    enum class SourceProviderSourceType {
+    enum class SourceProviderSourceType : uint8_t {
         Program,
         Module,
         WebAssembly,
@@ -80,14 +80,14 @@ namespace JSC {
     private:
         JS_EXPORT_PRIVATE void getID();
 
+        SourceProviderSourceType m_sourceType;
+        bool m_validated : 1;
         SourceOrigin m_sourceOrigin;
         String m_url;
         String m_sourceURLDirective;
         String m_sourceMappingURLDirective;
         TextPosition m_startPosition;
-        SourceProviderSourceType m_sourceType;
-        bool m_validated : 1;
-        uintptr_t m_id : sizeof(uintptr_t) * 8 - 1;
+        uintptr_t m_id { 0 };
     };
 
     class StringSourceProvider : public SourceProvider {