Title: [249857] trunk/Source/_javascript_Core
Revision
249857
Author
mark....@apple.com
Date
2019-09-13 16:18:51 -0700 (Fri, 13 Sep 2019)

Log Message

performJITMemcpy() should do its !Gigacage assertion on exit.
https://bugs.webkit.org/show_bug.cgi?id=201780
<rdar://problem/55354867>

Reviewed by Robin Morisset.

* jit/ExecutableAllocator.h:
(JSC::GigacageAssertScope::GigacageAssertScope):
(JSC::GigacageAssertScope::~GigacageAssertScope):
(JSC::performJITMemcpy):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (249856 => 249857)


--- trunk/Source/_javascript_Core/ChangeLog	2019-09-13 22:06:51 UTC (rev 249856)
+++ trunk/Source/_javascript_Core/ChangeLog	2019-09-13 23:18:51 UTC (rev 249857)
@@ -1,3 +1,16 @@
+2019-09-13  Mark Lam  <mark....@apple.com>
+
+        performJITMemcpy() should do its !Gigacage assertion on exit.
+        https://bugs.webkit.org/show_bug.cgi?id=201780
+        <rdar://problem/55354867>
+
+        Reviewed by Robin Morisset.
+
+        * jit/ExecutableAllocator.h:
+        (JSC::GigacageAssertScope::GigacageAssertScope):
+        (JSC::GigacageAssertScope::~GigacageAssertScope):
+        (JSC::performJITMemcpy):
+
 2019-09-13  Yusuke Suzuki  <ysuz...@apple.com>
 
         [JSC] Micro-optimize YarrJIT's surrogate pair handling

Modified: trunk/Source/_javascript_Core/jit/ExecutableAllocator.h (249856 => 249857)


--- trunk/Source/_javascript_Core/jit/ExecutableAllocator.h	2019-09-13 22:06:51 UTC (rev 249856)
+++ trunk/Source/_javascript_Core/jit/ExecutableAllocator.h	2019-09-13 23:18:51 UTC (rev 249857)
@@ -116,9 +116,17 @@
 
 JS_EXPORT_PRIVATE void dumpJITMemory(const void*, const void*, size_t);
 
+struct GigacageAssertScope {
+    GigacageAssertScope(const void *src)
+        : src(src)
+    { }
+    ~GigacageAssertScope() { RELEASE_ASSERT(!Gigacage::contains(src)); }
+    const void* src;
+};
+
 static ALWAYS_INLINE void* performJITMemcpy(void *dst, const void *src, size_t n)
 {
-    RELEASE_ASSERT(!Gigacage::contains(src));
+    GigacageAssertScope assertScope(src);
 #if CPU(ARM64)
     static constexpr size_t instructionSize = sizeof(unsigned);
     RELEASE_ASSERT(roundUpToMultipleOf<instructionSize>(dst) == dst);
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to