Title: [183753] trunk/Source/_javascript_Core
Revision
183753
Author
[email protected]
Date
2015-05-04 11:45:40 -0700 (Mon, 04 May 2015)

Log Message

Make ExecState::vm() branchless in release builds.
<https://webkit.org/b/144586>

Reviewed by Geoffrey Garen.

Avoid null checking the ExecState's callee() before getting the
VM from it. The code was already dereferencing it anyway, since we
know it's not gonna be null.

* runtime/JSCellInlines.h:
(JSC::ExecState::vm):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (183752 => 183753)


--- trunk/Source/_javascript_Core/ChangeLog	2015-05-04 18:37:58 UTC (rev 183752)
+++ trunk/Source/_javascript_Core/ChangeLog	2015-05-04 18:45:40 UTC (rev 183753)
@@ -1,3 +1,17 @@
+2015-05-04  Andreas Kling  <[email protected]>
+
+        Make ExecState::vm() branchless in release builds.
+        <https://webkit.org/b/144586>
+
+        Reviewed by Geoffrey Garen.
+
+        Avoid null checking the ExecState's callee() before getting the
+        VM from it. The code was already dereferencing it anyway, since we
+        know it's not gonna be null.
+
+        * runtime/JSCellInlines.h:
+        (JSC::ExecState::vm):
+
 2015-05-04  Basile Clement  <[email protected]>
 
         Object allocation not sinking properly through CheckStructure

Modified: trunk/Source/_javascript_Core/runtime/JSCellInlines.h (183752 => 183753)


--- trunk/Source/_javascript_Core/runtime/JSCellInlines.h	2015-05-04 18:37:58 UTC (rev 183752)
+++ trunk/Source/_javascript_Core/runtime/JSCellInlines.h	2015-05-04 18:45:40 UTC (rev 183753)
@@ -120,8 +120,9 @@
 
 inline VM& ExecState::vm() const
 {
+    ASSERT(callee());
     ASSERT(callee()->vm());
-    return *callee()->vm();
+    return *calleeAsValue().asCell()->vm();
 }
 
 template<typename T>
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to