Title: [126721] trunk/Source
Revision
126721
Author
[email protected]
Date
2012-08-26 20:57:02 -0700 (Sun, 26 Aug 2012)

Log Message

Removed the NULL checks from visitChildren functions
https://bugs.webkit.org/show_bug.cgi?id=95021

Reviewed by Oliver Hunt.

Source/_javascript_Core: 

As of http://trac.webkit.org/changeset/126624, all values are NULL-checked
during GC, so explicit NULL checks aren't needed anymore.

Source/WebCore: 

As of http://trac.webkit.org/changeset/126624, all values are NULL-checked
during GC, so explicit NULL checks aren't needed anymore.

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (126720 => 126721)


--- trunk/Source/_javascript_Core/ChangeLog	2012-08-27 03:48:14 UTC (rev 126720)
+++ trunk/Source/_javascript_Core/ChangeLog	2012-08-27 03:57:02 UTC (rev 126721)
@@ -1,3 +1,13 @@
+2012-08-26  Geoffrey Garen  <[email protected]>
+
+        Removed the NULL checks from visitChildren functions
+        https://bugs.webkit.org/show_bug.cgi?id=95021
+
+        Reviewed by Oliver Hunt.
+
+        As of http://trac.webkit.org/changeset/126624, all values are NULL-checked
+        during GC, so explicit NULL checks aren't needed anymore.
+
 2011-08-26  Geoffrey Garen  <[email protected]>
 
         Removed a JSC-specific hack from the web inspector

Modified: trunk/Source/_javascript_Core/debugger/DebuggerActivation.cpp (126720 => 126721)


--- trunk/Source/_javascript_Core/debugger/DebuggerActivation.cpp	2012-08-27 03:48:14 UTC (rev 126720)
+++ trunk/Source/_javascript_Core/debugger/DebuggerActivation.cpp	2012-08-27 03:57:02 UTC (rev 126721)
@@ -53,10 +53,9 @@
     ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
     COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
     ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren());
-    JSObject::visitChildren(thisObject, visitor);
 
-    if (thisObject->m_activation)
-        visitor.append(&thisObject->m_activation);
+    JSObject::visitChildren(thisObject, visitor);
+    visitor.append(&thisObject->m_activation);
 }
 
 UString DebuggerActivation::className(const JSObject* object)

Modified: trunk/Source/_javascript_Core/runtime/Arguments.cpp (126720 => 126721)


--- trunk/Source/_javascript_Core/runtime/Arguments.cpp	2012-08-27 03:48:14 UTC (rev 126720)
+++ trunk/Source/_javascript_Core/runtime/Arguments.cpp	2012-08-27 03:57:02 UTC (rev 126721)
@@ -48,8 +48,7 @@
     if (thisObject->d->registerArray)
         visitor.appendValues(thisObject->d->registerArray.get(), thisObject->d->numArguments);
     visitor.append(&thisObject->d->callee);
-    if (thisObject->d->activation)
-        visitor.append(&thisObject->d->activation);
+    visitor.append(&thisObject->d->activation);
 }
 
 void Arguments::destroy(JSCell* cell)

Modified: trunk/Source/_javascript_Core/runtime/Executable.cpp (126720 => 126721)


--- trunk/Source/_javascript_Core/runtime/Executable.cpp	2012-08-27 03:48:14 UTC (rev 126720)
+++ trunk/Source/_javascript_Core/runtime/Executable.cpp	2012-08-27 03:57:02 UTC (rev 126721)
@@ -611,10 +611,8 @@
     COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
     ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren());
     ScriptExecutable::visitChildren(thisObject, visitor);
-    if (thisObject->m_nameValue)
-        visitor.append(&thisObject->m_nameValue);
-    if (thisObject->m_symbolTable)
-        visitor.append(&thisObject->m_symbolTable);
+    visitor.append(&thisObject->m_nameValue);
+    visitor.append(&thisObject->m_symbolTable);
     if (thisObject->m_codeBlockForCall)
         thisObject->m_codeBlockForCall->visitAggregate(visitor);
     if (thisObject->m_codeBlockForConstruct)

Modified: trunk/Source/_javascript_Core/runtime/GetterSetter.cpp (126720 => 126721)


--- trunk/Source/_javascript_Core/runtime/GetterSetter.cpp	2012-08-27 03:48:14 UTC (rev 126720)
+++ trunk/Source/_javascript_Core/runtime/GetterSetter.cpp	2012-08-27 03:57:02 UTC (rev 126721)
@@ -39,10 +39,8 @@
     ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren());
     JSCell::visitChildren(thisObject, visitor);
 
-    if (thisObject->m_getter)
-        visitor.append(&thisObject->m_getter);
-    if (thisObject->m_setter)
-        visitor.append(&thisObject->m_setter);
+    visitor.append(&thisObject->m_getter);
+    visitor.append(&thisObject->m_setter);
 }
 
 } // namespace JSC

Modified: trunk/Source/_javascript_Core/runtime/JSFunction.cpp (126720 => 126721)


--- trunk/Source/_javascript_Core/runtime/JSFunction.cpp	2012-08-27 03:48:14 UTC (rev 126720)
+++ trunk/Source/_javascript_Core/runtime/JSFunction.cpp	2012-08-27 03:57:02 UTC (rev 126721)
@@ -170,8 +170,7 @@
     Base::visitChildren(thisObject, visitor);
 
     visitor.append(&thisObject->m_scopeChain);
-    if (thisObject->m_executable)
-        visitor.append(&thisObject->m_executable);
+    visitor.append(&thisObject->m_executable);
 }
 
 CallType JSFunction::getCallData(JSCell* cell, CallData& callData)

Modified: trunk/Source/_javascript_Core/runtime/JSGlobalObject.cpp (126720 => 126721)


--- trunk/Source/_javascript_Core/runtime/JSGlobalObject.cpp	2012-08-27 03:48:14 UTC (rev 126720)
+++ trunk/Source/_javascript_Core/runtime/JSGlobalObject.cpp	2012-08-27 03:57:02 UTC (rev 126721)
@@ -106,12 +106,6 @@
 // Preferred number of milliseconds between each timeout check
 static const int preferredScriptCheckTimeInterval = 1000;
 
-template <typename T> static inline void visitIfNeeded(SlotVisitor& visitor, WriteBarrier<T>* v)
-{
-    if (*v)
-        visitor.append(v);
-}
-
 JSGlobalObject::JSGlobalObject(JSGlobalData& globalData, Structure* structure, const GlobalObjectMethodTable* globalObjectMethodTable)
     : JSSegmentedVariableObject(globalData, structure)
     , m_globalScopeChain()
@@ -353,52 +347,52 @@
     ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren());
     JSSegmentedVariableObject::visitChildren(thisObject, visitor);
 
-    visitIfNeeded(visitor, &thisObject->m_globalScopeChain);
-    visitIfNeeded(visitor, &thisObject->m_methodCallDummy);
+    visitor.append(&thisObject->m_globalScopeChain);
+    visitor.append(&thisObject->m_methodCallDummy);
 
-    visitIfNeeded(visitor, &thisObject->m_regExpConstructor);
-    visitIfNeeded(visitor, &thisObject->m_errorConstructor);
-    visitIfNeeded(visitor, &thisObject->m_evalErrorConstructor);
-    visitIfNeeded(visitor, &thisObject->m_rangeErrorConstructor);
-    visitIfNeeded(visitor, &thisObject->m_referenceErrorConstructor);
-    visitIfNeeded(visitor, &thisObject->m_syntaxErrorConstructor);
-    visitIfNeeded(visitor, &thisObject->m_typeErrorConstructor);
-    visitIfNeeded(visitor, &thisObject->m_URIErrorConstructor);
+    visitor.append(&thisObject->m_regExpConstructor);
+    visitor.append(&thisObject->m_errorConstructor);
+    visitor.append(&thisObject->m_evalErrorConstructor);
+    visitor.append(&thisObject->m_rangeErrorConstructor);
+    visitor.append(&thisObject->m_referenceErrorConstructor);
+    visitor.append(&thisObject->m_syntaxErrorConstructor);
+    visitor.append(&thisObject->m_typeErrorConstructor);
+    visitor.append(&thisObject->m_URIErrorConstructor);
 
-    visitIfNeeded(visitor, &thisObject->m_evalFunction);
-    visitIfNeeded(visitor, &thisObject->m_callFunction);
-    visitIfNeeded(visitor, &thisObject->m_applyFunction);
-    visitIfNeeded(visitor, &thisObject->m_throwTypeErrorGetterSetter);
+    visitor.append(&thisObject->m_evalFunction);
+    visitor.append(&thisObject->m_callFunction);
+    visitor.append(&thisObject->m_applyFunction);
+    visitor.append(&thisObject->m_throwTypeErrorGetterSetter);
 
-    visitIfNeeded(visitor, &thisObject->m_objectPrototype);
-    visitIfNeeded(visitor, &thisObject->m_functionPrototype);
-    visitIfNeeded(visitor, &thisObject->m_arrayPrototype);
-    visitIfNeeded(visitor, &thisObject->m_booleanPrototype);
-    visitIfNeeded(visitor, &thisObject->m_stringPrototype);
-    visitIfNeeded(visitor, &thisObject->m_numberPrototype);
-    visitIfNeeded(visitor, &thisObject->m_datePrototype);
-    visitIfNeeded(visitor, &thisObject->m_regExpPrototype);
-    visitIfNeeded(visitor, &thisObject->m_errorPrototype);
+    visitor.append(&thisObject->m_objectPrototype);
+    visitor.append(&thisObject->m_functionPrototype);
+    visitor.append(&thisObject->m_arrayPrototype);
+    visitor.append(&thisObject->m_booleanPrototype);
+    visitor.append(&thisObject->m_stringPrototype);
+    visitor.append(&thisObject->m_numberPrototype);
+    visitor.append(&thisObject->m_datePrototype);
+    visitor.append(&thisObject->m_regExpPrototype);
+    visitor.append(&thisObject->m_errorPrototype);
 
-    visitIfNeeded(visitor, &thisObject->m_argumentsStructure);
-    visitIfNeeded(visitor, &thisObject->m_arrayStructure);
-    visitIfNeeded(visitor, &thisObject->m_booleanObjectStructure);
-    visitIfNeeded(visitor, &thisObject->m_callbackConstructorStructure);
-    visitIfNeeded(visitor, &thisObject->m_callbackFunctionStructure);
-    visitIfNeeded(visitor, &thisObject->m_callbackObjectStructure);
-    visitIfNeeded(visitor, &thisObject->m_dateStructure);
-    visitIfNeeded(visitor, &thisObject->m_emptyObjectStructure);
-    visitIfNeeded(visitor, &thisObject->m_nullPrototypeObjectStructure);
-    visitIfNeeded(visitor, &thisObject->m_errorStructure);
-    visitIfNeeded(visitor, &thisObject->m_functionStructure);
-    visitIfNeeded(visitor, &thisObject->m_boundFunctionStructure);
-    visitIfNeeded(visitor, &thisObject->m_namedFunctionStructure);
-    visitIfNeeded(visitor, &thisObject->m_numberObjectStructure);
-    visitIfNeeded(visitor, &thisObject->m_privateNameStructure);
-    visitIfNeeded(visitor, &thisObject->m_regExpMatchesArrayStructure);
-    visitIfNeeded(visitor, &thisObject->m_regExpStructure);
-    visitIfNeeded(visitor, &thisObject->m_stringObjectStructure);
-    visitIfNeeded(visitor, &thisObject->m_internalFunctionStructure);
+    visitor.append(&thisObject->m_argumentsStructure);
+    visitor.append(&thisObject->m_arrayStructure);
+    visitor.append(&thisObject->m_booleanObjectStructure);
+    visitor.append(&thisObject->m_callbackConstructorStructure);
+    visitor.append(&thisObject->m_callbackFunctionStructure);
+    visitor.append(&thisObject->m_callbackObjectStructure);
+    visitor.append(&thisObject->m_dateStructure);
+    visitor.append(&thisObject->m_emptyObjectStructure);
+    visitor.append(&thisObject->m_nullPrototypeObjectStructure);
+    visitor.append(&thisObject->m_errorStructure);
+    visitor.append(&thisObject->m_functionStructure);
+    visitor.append(&thisObject->m_boundFunctionStructure);
+    visitor.append(&thisObject->m_namedFunctionStructure);
+    visitor.append(&thisObject->m_numberObjectStructure);
+    visitor.append(&thisObject->m_privateNameStructure);
+    visitor.append(&thisObject->m_regExpMatchesArrayStructure);
+    visitor.append(&thisObject->m_regExpStructure);
+    visitor.append(&thisObject->m_stringObjectStructure);
+    visitor.append(&thisObject->m_internalFunctionStructure);
 }
 
 ExecState* JSGlobalObject::globalExec()

Modified: trunk/Source/_javascript_Core/runtime/JSGlobalThis.cpp (126720 => 126721)


--- trunk/Source/_javascript_Core/runtime/JSGlobalThis.cpp	2012-08-27 03:48:14 UTC (rev 126720)
+++ trunk/Source/_javascript_Core/runtime/JSGlobalThis.cpp	2012-08-27 03:57:02 UTC (rev 126721)
@@ -44,8 +44,7 @@
     ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren());
 
     Base::visitChildren(thisObject, visitor);
-    if (thisObject->m_unwrappedObject)
-        visitor.append(&thisObject->m_unwrappedObject);
+    visitor.append(&thisObject->m_unwrappedObject);
 }
 
 void JSGlobalThis::setUnwrappedObject(JSGlobalData& globalData, JSGlobalObject* globalObject)

Modified: trunk/Source/_javascript_Core/runtime/JSPropertyNameIterator.cpp (126720 => 126721)


--- trunk/Source/_javascript_Core/runtime/JSPropertyNameIterator.cpp	2012-08-27 03:48:14 UTC (rev 126720)
+++ trunk/Source/_javascript_Core/runtime/JSPropertyNameIterator.cpp	2012-08-27 03:57:02 UTC (rev 126721)
@@ -103,8 +103,7 @@
     ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
     ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren());
     visitor.appendValues(thisObject->m_jsStrings.get(), thisObject->m_jsStringsSize);
-    if (thisObject->m_cachedPrototypeChain)
-        visitor.append(&thisObject->m_cachedPrototypeChain);
+    visitor.append(&thisObject->m_cachedPrototypeChain);
 }
 
 } // namespace JSC

Modified: trunk/Source/_javascript_Core/runtime/JSStaticScopeObject.cpp (126720 => 126721)


--- trunk/Source/_javascript_Core/runtime/JSStaticScopeObject.cpp	2012-08-27 03:48:14 UTC (rev 126720)
+++ trunk/Source/_javascript_Core/runtime/JSStaticScopeObject.cpp	2012-08-27 03:57:02 UTC (rev 126721)
@@ -40,6 +40,7 @@
     ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
     COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
     ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren());
+
     JSVariableObject::visitChildren(thisObject, visitor);
     visitor.append(&thisObject->m_registerStore);
 }

Modified: trunk/Source/_javascript_Core/runtime/JSSymbolTableObject.cpp (126720 => 126721)


--- trunk/Source/_javascript_Core/runtime/JSSymbolTableObject.cpp	2012-08-27 03:48:14 UTC (rev 126720)
+++ trunk/Source/_javascript_Core/runtime/JSSymbolTableObject.cpp	2012-08-27 03:57:02 UTC (rev 126721)
@@ -42,6 +42,7 @@
     ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
     COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
     ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren());
+
     Base::visitChildren(thisObject, visitor);
     visitor.append(&thisObject->m_symbolTable);
 }

Modified: trunk/Source/_javascript_Core/runtime/JSWrapperObject.cpp (126720 => 126721)


--- trunk/Source/_javascript_Core/runtime/JSWrapperObject.cpp	2012-08-27 03:48:14 UTC (rev 126720)
+++ trunk/Source/_javascript_Core/runtime/JSWrapperObject.cpp	2012-08-27 03:57:02 UTC (rev 126721)
@@ -33,9 +33,9 @@
     ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
     COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
     ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren());
+
     JSObject::visitChildren(thisObject, visitor);
-    if (thisObject->m_internalValue)
-        visitor.append(&thisObject->m_internalValue);
+    visitor.append(&thisObject->m_internalValue);
 }
 
 } // namespace JSC

Modified: trunk/Source/_javascript_Core/runtime/NativeErrorConstructor.cpp (126720 => 126721)


--- trunk/Source/_javascript_Core/runtime/NativeErrorConstructor.cpp	2012-08-27 03:48:14 UTC (rev 126720)
+++ trunk/Source/_javascript_Core/runtime/NativeErrorConstructor.cpp	2012-08-27 03:57:02 UTC (rev 126721)
@@ -44,9 +44,9 @@
     ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
     COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
     ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren());
+
     InternalFunction::visitChildren(thisObject, visitor);
-    if (thisObject->m_errorStructure)
-        visitor.append(&thisObject->m_errorStructure);
+    visitor.append(&thisObject->m_errorStructure);
 }
 
 static EncodedJSValue JSC_HOST_CALL constructWithNativeErrorConstructor(ExecState* exec)

Modified: trunk/Source/_javascript_Core/runtime/RegExpCachedResult.cpp (126720 => 126721)


--- trunk/Source/_javascript_Core/runtime/RegExpCachedResult.cpp	2012-08-27 03:48:14 UTC (rev 126720)
+++ trunk/Source/_javascript_Core/runtime/RegExpCachedResult.cpp	2012-08-27 03:57:02 UTC (rev 126721)
@@ -32,13 +32,10 @@
 
 void RegExpCachedResult::visitChildren(SlotVisitor& visitor)
 {
-    if (m_result) {
-        visitor.append(&m_lastInput);
-        visitor.append(&m_lastRegExp);
-    } else {
-        visitor.append(&m_reifiedInput);
-        visitor.append(&m_reifiedResult);
-    }
+    visitor.append(&m_lastInput);
+    visitor.append(&m_lastRegExp);
+    visitor.append(&m_reifiedInput);
+    visitor.append(&m_reifiedResult);
 }
 
 RegExpMatchesArray* RegExpCachedResult::lastResult(ExecState* exec, JSObject* owner)

Modified: trunk/Source/_javascript_Core/runtime/RegExpCachedResult.h (126720 => 126721)


--- trunk/Source/_javascript_Core/runtime/RegExpCachedResult.h	2012-08-27 03:48:14 UTC (rev 126720)
+++ trunk/Source/_javascript_Core/runtime/RegExpCachedResult.h	2012-08-27 03:57:02 UTC (rev 126721)
@@ -49,8 +49,6 @@
         {
             m_lastInput.set(globalData, owner, jsEmptyString(&globalData));
             m_lastRegExp.set(globalData, owner, emptyRegExp);
-            m_reifiedResult.clear();
-            m_reifiedInput.clear();
         }
 
         ALWAYS_INLINE void record(JSGlobalData& globalData, JSObject* owner, RegExp* regExp, JSString* input, MatchResult result)

Modified: trunk/Source/_javascript_Core/runtime/RegExpObject.cpp (126720 => 126721)


--- trunk/Source/_javascript_Core/runtime/RegExpObject.cpp	2012-08-27 03:48:14 UTC (rev 126720)
+++ trunk/Source/_javascript_Core/runtime/RegExpObject.cpp	2012-08-27 03:57:02 UTC (rev 126721)
@@ -81,11 +81,10 @@
     ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
     COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
     ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren());
+
     Base::visitChildren(thisObject, visitor);
-    if (thisObject->m_regExp)
-        visitor.append(&thisObject->m_regExp);
-    if (UNLIKELY(!thisObject->m_lastIndex.get().isInt32()))
-        visitor.append(&thisObject->m_lastIndex);
+    visitor.append(&thisObject->m_regExp);
+    visitor.append(&thisObject->m_lastIndex);
 }
 
 bool RegExpObject::getOwnPropertySlot(JSCell* cell, ExecState* exec, PropertyName propertyName, PropertySlot& slot)

Modified: trunk/Source/_javascript_Core/runtime/ScopeChain.cpp (126720 => 126721)


--- trunk/Source/_javascript_Core/runtime/ScopeChain.cpp	2012-08-27 03:48:14 UTC (rev 126720)
+++ trunk/Source/_javascript_Core/runtime/ScopeChain.cpp	2012-08-27 03:57:02 UTC (rev 126721)
@@ -75,8 +75,8 @@
     ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
     COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
     ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren());
-    if (thisObject->next)
-        visitor.append(&thisObject->next);
+
+    visitor.append(&thisObject->next);
     visitor.append(&thisObject->object);
     visitor.append(&thisObject->globalObject);
     visitor.append(&thisObject->globalThis);

Modified: trunk/Source/_javascript_Core/runtime/Structure.cpp (126720 => 126721)


--- trunk/Source/_javascript_Core/runtime/Structure.cpp	2012-08-27 03:48:14 UTC (rev 126720)
+++ trunk/Source/_javascript_Core/runtime/Structure.cpp	2012-08-27 03:57:02 UTC (rev 126721)
@@ -762,32 +762,24 @@
     Structure* thisObject = jsCast<Structure*>(cell);
     ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
     ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren());
+
     JSCell::visitChildren(thisObject, visitor);
-    if (thisObject->m_globalObject)
-        visitor.append(&thisObject->m_globalObject);
+    visitor.append(&thisObject->m_globalObject);
     if (!thisObject->isObject())
         thisObject->m_cachedPrototypeChain.clear();
     else {
-        if (thisObject->m_prototype)
-            visitor.append(&thisObject->m_prototype);
-        if (thisObject->m_cachedPrototypeChain)
-            visitor.append(&thisObject->m_cachedPrototypeChain);
+        visitor.append(&thisObject->m_prototype);
+        visitor.append(&thisObject->m_cachedPrototypeChain);
     }
-    if (thisObject->m_previous)
-        visitor.append(&thisObject->m_previous);
-    if (thisObject->m_specificValueInPrevious)
-        visitor.append(&thisObject->m_specificValueInPrevious);
-    if (thisObject->m_enumerationCache)
-        visitor.append(&thisObject->m_enumerationCache);
+    visitor.append(&thisObject->m_previous);
+    visitor.append(&thisObject->m_specificValueInPrevious);
+    visitor.append(&thisObject->m_enumerationCache);
     if (thisObject->m_propertyTable) {
         PropertyTable::iterator end = thisObject->m_propertyTable->end();
-        for (PropertyTable::iterator ptr = thisObject->m_propertyTable->begin(); ptr != end; ++ptr) {
-            if (ptr->specificValue)
-                visitor.append(&ptr->specificValue);
-        }
+        for (PropertyTable::iterator ptr = thisObject->m_propertyTable->begin(); ptr != end; ++ptr)
+            visitor.append(&ptr->specificValue);
     }
-    if (thisObject->m_objectToStringValue)
-        visitor.append(&thisObject->m_objectToStringValue);
+    visitor.append(&thisObject->m_objectToStringValue);
 }
 
 #if DO_PROPERTYMAP_CONSTENCY_CHECK

Modified: trunk/Source/WebCore/ChangeLog (126720 => 126721)


--- trunk/Source/WebCore/ChangeLog	2012-08-27 03:48:14 UTC (rev 126720)
+++ trunk/Source/WebCore/ChangeLog	2012-08-27 03:57:02 UTC (rev 126721)
@@ -1,5 +1,15 @@
 2012-08-26  Geoffrey Garen  <[email protected]>
 
+        Removed the NULL checks from visitChildren functions
+        https://bugs.webkit.org/show_bug.cgi?id=95021
+
+        Reviewed by Oliver Hunt.
+
+        As of http://trac.webkit.org/changeset/126624, all values are NULL-checked
+        during GC, so explicit NULL checks aren't needed anymore.
+
+2012-08-26  Geoffrey Garen  <[email protected]>
+
         Removed a JSC-specific hack from the web inspector
         https://bugs.webkit.org/show_bug.cgi?id=95033
 

Modified: trunk/Source/WebCore/bindings/js/JSAttrCustom.cpp (126720 => 126721)


--- trunk/Source/WebCore/bindings/js/JSAttrCustom.cpp	2012-08-27 03:48:14 UTC (rev 126720)
+++ trunk/Source/WebCore/bindings/js/JSAttrCustom.cpp	2012-08-27 03:57:02 UTC (rev 126721)
@@ -45,8 +45,8 @@
     ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info);
     COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag);
     ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren());
+
     Base::visitChildren(thisObject, visitor);
-
     Element* element = thisObject->impl()->ownerElement();
     if (!element)
         return;

Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (126720 => 126721)


--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm	2012-08-27 03:48:14 UTC (rev 126720)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm	2012-08-27 03:57:02 UTC (rev 126721)
@@ -2293,8 +2293,7 @@
                 foreach (@{$dataNode->attributes}) {
                     my $attribute = $_;
                     if ($attribute->signature->extendedAttributes->{"CachedAttribute"}) {
-                        push(@implContent, "    if (thisObject->m_" . $attribute->signature->name . ")\n");
-                        push(@implContent, "        visitor.append(&thisObject->m_" . $attribute->signature->name . ");\n");
+                        push(@implContent, "    visitor.append(&thisObject->m_" . $attribute->signature->name . ");\n");
                     }
                 }
             }
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to