2009-03-26 Darin Adler <darin@apple.com>
[WebKit-https.git] / WebCore / bindings / js / JSDOMApplicationCacheCustom.cpp
index 5305e1a..20d09dd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008 Apple Inc. All Rights Reserved.
+ * Copyright (C) 2008, 2009 Apple Inc. All Rights Reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -46,38 +46,21 @@ void JSDOMApplicationCache::mark()
 {
     DOMObject::mark();
 
-    if (JSEventListener* listener = static_cast<JSEventListener*>(m_impl->onchecking()))
-        listener->mark();
-
-    if (JSEventListener* listener = static_cast<JSEventListener*>(m_impl->onerror()))
-        listener->mark();
-
-    if (JSEventListener* listener = static_cast<JSEventListener*>(m_impl->onnoupdate()))
-        listener->mark();
-
-    if (JSEventListener* listener = static_cast<JSEventListener*>(m_impl->ondownloading()))
-        listener->mark();
-
-    if (JSEventListener* listener = static_cast<JSEventListener*>(m_impl->onprogress()))
-        listener->mark();
-
-    if (JSEventListener* listener = static_cast<JSEventListener*>(m_impl->onupdateready()))
-        listener->mark();
-
-    if (JSEventListener* listener = static_cast<JSEventListener*>(m_impl->oncached()))
-        listener->mark();
-
-    if (JSEventListener* listener = static_cast<JSEventListener*>(m_impl->onobsolete()))
-        listener->mark();
+    markIfNotNull(m_impl->onchecking());
+    markIfNotNull(m_impl->onerror());
+    markIfNotNull(m_impl->onnoupdate());
+    markIfNotNull(m_impl->ondownloading());
+    markIfNotNull(m_impl->onprogress());
+    markIfNotNull(m_impl->onupdateready());
+    markIfNotNull(m_impl->oncached());
+    markIfNotNull(m_impl->onobsolete());
 
     typedef DOMApplicationCache::EventListenersMap EventListenersMap;
     typedef DOMApplicationCache::ListenerVector ListenerVector;
     EventListenersMap& eventListeners = m_impl->eventListeners();
     for (EventListenersMap::iterator mapIter = eventListeners.begin(); mapIter != eventListeners.end(); ++mapIter) {
-        for (ListenerVector::iterator vecIter = mapIter->second.begin(); vecIter != mapIter->second.end(); ++vecIter) {
-            JSEventListener* listener = static_cast<JSEventListener*>(vecIter->get());
-            listener->mark();
-        }
+        for (ListenerVector::iterator vecIter = mapIter->second.begin(); vecIter != mapIter->second.end(); ++vecIter)
+            (*vecIter)->mark();
     }
 }