Title: [211212] branches/safari-603-branch/Source/_javascript_Core
Revision
211212
Author
matthew_han...@apple.com
Date
2017-01-26 07:52:55 -0800 (Thu, 26 Jan 2017)

Log Message

Roll out r234555 via r211180.

Modified Paths

Diff

Modified: branches/safari-603-branch/Source/_javascript_Core/ChangeLog (211211 => 211212)


--- branches/safari-603-branch/Source/_javascript_Core/ChangeLog	2017-01-26 15:52:52 UTC (rev 211211)
+++ branches/safari-603-branch/Source/_javascript_Core/ChangeLog	2017-01-26 15:52:55 UTC (rev 211212)
@@ -1,5 +1,9 @@
 2017-01-25  Matthew Hanson  <matthew_han...@apple.com>
 
+        Rollout r211180.
+
+2017-01-25  Matthew Hanson  <matthew_han...@apple.com>
+
         Merge r211129. rdar://problem/30178458
 
     2017-01-24  Filip Pizlo  <fpi...@apple.com>

Modified: branches/safari-603-branch/Source/_javascript_Core/runtime/InferredTypeTable.cpp (211211 => 211212)


--- branches/safari-603-branch/Source/_javascript_Core/runtime/InferredTypeTable.cpp	2017-01-26 15:52:52 UTC (rev 211211)
+++ branches/safari-603-branch/Source/_javascript_Core/runtime/InferredTypeTable.cpp	2017-01-26 15:52:55 UTC (rev 211212)
@@ -57,12 +57,10 @@
     ConcurrentJSLocker locker(inferredTypeTable->m_lock);
     
     for (auto& entry : inferredTypeTable->m_table) {
-        auto entryValue = entry.value;
-
-        if (!entryValue)
+        if (!entry.value)
             continue;
-        if (entryValue->isRelevant())
-            visitor.append(entryValue);
+        if (entry.value->isRelevant())
+            visitor.append(entry.value);
         else
             entry.value.clear();
     }
@@ -71,20 +69,16 @@
 InferredType* InferredTypeTable::get(const ConcurrentJSLocker&, UniquedStringImpl* uid)
 {
     auto iter = m_table.find(uid);
-    if (iter == m_table.end())
+    if (iter == m_table.end() || !iter->value)
         return nullptr;
 
-    InferredType* entryValue = iter->value.get();
-    if (!entryValue)
-        return nullptr;
-
     // Take this opportunity to prune invalidated types.
-    if (!entryValue->isRelevant()) {
+    if (!iter->value->isRelevant()) {
         iter->value.clear();
         return nullptr;
     }
 
-    return entryValue;
+    return iter->value.get();
 }
 
 InferredType* InferredTypeTable::get(UniquedStringImpl* uid)
@@ -105,14 +99,10 @@
     
     if (age == OldProperty) {
         TableType::iterator iter = m_table.find(propertyName.uid());
-        if (iter == m_table.end())
+        if (iter == m_table.end() || !iter->value)
             return false; // Absence on replace => top.
-
-        InferredType* entryValue = iter->value.get();
-        if (!entryValue)
-            return false;
         
-        if (entryValue->willStoreValue(vm, propertyName, value))
+        if (iter->value->willStoreValue(vm, propertyName, value))
             return true;
         
         iter->value.clear();
@@ -124,17 +114,14 @@
         ConcurrentJSLocker locker(m_lock);
         result = m_table.add(propertyName.uid(), WriteBarrier<InferredType>());
     }
-    InferredType* entryValue = result.iterator->value.get();
-
     if (result.isNewEntry) {
         InferredType* inferredType = InferredType::create(vm);
         WTF::storeStoreFence();
         result.iterator->value.set(vm, this, inferredType);
-        entryValue = inferredType;
-    } else if (!entryValue)
+    } else if (!result.iterator->value)
         return false;
     
-    if (entryValue->willStoreValue(vm, propertyName, value))
+    if (result.iterator->value->willStoreValue(vm, propertyName, value))
         return true;
     
     result.iterator->value.clear();
@@ -146,15 +133,10 @@
     // The algorithm here relies on the fact that only one thread modifies the hash map.
     if (age == OldProperty) {
         TableType::iterator iter = m_table.find(propertyName.uid());
-        if (iter == m_table.end())
+        if (iter == m_table.end() || !iter->value)
             return; // Absence on replace => top.
 
-        InferredType* entryValue = iter->value.get();
-
-        if (!entryValue)
-            return;
-
-        entryValue->makeTop(vm, propertyName);
+        iter->value->makeTop(vm, propertyName);
         iter->value.clear();
         return;
     }
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to