Use padding at end of ArrayBuffer
authorrmorisset@apple.com <rmorisset@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 12 Apr 2019 18:02:20 +0000 (18:02 +0000)
committerrmorisset@apple.com <rmorisset@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 12 Apr 2019 18:02:20 +0000 (18:02 +0000)
https://bugs.webkit.org/show_bug.cgi?id=196823

Reviewed by Filip Pizlo.

* runtime/ArrayBuffer.h:

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

Source/JavaScriptCore/ChangeLog
Source/JavaScriptCore/runtime/ArrayBuffer.h
Source/JavaScriptCore/runtime/JSBoundFunction.cpp

index 25f7144..d628ec7 100644 (file)
@@ -1,3 +1,12 @@
+2019-04-12  Robin Morisset  <rmorisset@apple.com>
+
+        Use padding at end of ArrayBuffer
+        https://bugs.webkit.org/show_bug.cgi?id=196823
+
+        Reviewed by Filip Pizlo.
+
+        * runtime/ArrayBuffer.h:
+
 2019-04-11  Yusuke Suzuki  <ysuzuki@apple.com>
 
         [JSC] op_has_indexed_property should not assume subscript part is Uint32
index 30fba6a..baf2b85 100644 (file)
@@ -29,6 +29,7 @@
 #include "GCIncomingRefCounted.h"
 #include "Weak.h"
 #include <wtf/CagedPtr.h>
+#include <wtf/CheckedArithmetic.h>
 #include <wtf/Function.h>
 #include <wtf/StdLibExtras.h>
 #include <wtf/ThreadSafeRefCounted.h>
@@ -161,11 +162,11 @@ private:
     void notifyIncommingReferencesOfTransfer(VM&);
 
     ArrayBufferContents m_contents;
-    unsigned m_pinCount : 30;
-    bool m_isWasmMemory : 1;
+    Checked<unsigned> m_pinCount;
+    bool m_isWasmMemory;
     // m_locked == true means that some API user fetched m_contents directly from a TypedArray object,
     // the buffer is backed by a WebAssembly.Memory, or is a SharedArrayBuffer.
-    bool m_locked : 1;
+    bool m_locked;
 
 public:
     Weak<JSArrayBuffer> m_wrapper;
index 29d727e..7d659db 100644 (file)
@@ -157,7 +157,7 @@ inline Structure* getBoundFunctionStructure(VM& vm, ExecState* exec, JSGlobalObj
     Structure* result = globalObject->boundFunctionStructure();
 
     // It would be nice if the structure map was keyed global objects in addition to the other things. Unfortunately, it is not
-    // currently. Whoever works on caching structure changes for prototype transistions should consider this problem as well.
+    // currently. Whoever works on caching structure changes for prototype transitions should consider this problem as well.
     // See: https://bugs.webkit.org/show_bug.cgi?id=152738
     if (prototype.isObject() && prototype.getObject()->globalObject(vm) == globalObject) {
         result = vm.structureCache.emptyStructureForPrototypeFromBaseStructure(globalObject, prototype.getObject(), result);