2008-03-10 Simon Hausmann <hausmann@webkit.org>
authorhausmann@webkit.org <hausmann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 10 Mar 2008 13:59:37 +0000 (13:59 +0000)
committerhausmann@webkit.org <hausmann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 10 Mar 2008 13:59:37 +0000 (13:59 +0000)
        Reviewed by Lars.

        Fix reference counting of returned MimeType and Plugin objects
        created in the array wrappers.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@30927 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/plugins/MimeTypeArray.cpp
WebCore/plugins/MimeTypeArray.h
WebCore/plugins/Plugin.cpp
WebCore/plugins/Plugin.h
WebCore/plugins/PluginArray.cpp
WebCore/plugins/PluginArray.h

index a59e74f..2d63475 100644 (file)
@@ -1,5 +1,19 @@
 2008-03-10  Simon Hausmann  <hausmann@webkit.org>
 
+        Reviewed by Lars.
+
+        Fix reference counting of returned MimeType and Plugin objects
+        created in the array wrappers.
+
+        * plugins/MimeTypeArray.cpp:
+        * plugins/MimeTypeArray.h:
+        * plugins/Plugin.cpp:
+        * plugins/Plugin.h:
+        * plugins/PluginArray.cpp:
+        * plugins/PluginArray.h:
+
+2008-03-10  Simon Hausmann  <hausmann@webkit.org>
+
         Wx linking fix.
 
         Added missing stubs for PluginData.
index 0a9d91f..068fbfa 100644 (file)
@@ -44,7 +44,7 @@ unsigned MimeTypeArray::length() const
     return data->mimes().size();
 }
 
-MimeType* MimeTypeArray::item(unsigned index)
+PassRefPtr<MimeType> MimeTypeArray::item(unsigned index)
 {
     PluginData* data = getPluginData();
     if (!data)
@@ -68,7 +68,7 @@ bool MimeTypeArray::canGetItemsForName(const AtomicString& propertyName)
     return false;
 }
 
-MimeType* MimeTypeArray::nameGetter(const AtomicString& propertyName)
+PassRefPtr<MimeType> MimeTypeArray::nameGetter(const AtomicString& propertyName)
 {
     PluginData *data = getPluginData();
     if (!data)
index 90b4981..570ec31 100644 (file)
@@ -20,6 +20,7 @@
 #ifndef MimeTypeArray_h
 #define MimeTypeArray_h
 
+#include "MimeType.h"
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 #include <wtf/Vector.h>
@@ -33,7 +34,6 @@ namespace WebCore {
 
     class AtomicString;
     class Frame;
-    class MimeType;
     class PluginData;
 
     // FIXME: Generated JSMimeTypeArray.cpp doesn't include JSMimeType.h for toJS
@@ -47,9 +47,9 @@ namespace WebCore {
         void disconnectFrame() { m_frame = 0; }
 
         unsigned length() const;
-        MimeType* item(unsigned index);
+        PassRefPtr<MimeType> item(unsigned index);
         bool canGetItemsForName(const AtomicString& propertyName);
-        MimeType* nameGetter(const AtomicString& propertyName);
+        PassRefPtr<MimeType> nameGetter(const AtomicString& propertyName);
     private:
         MimeTypeArray(Frame*);
         PluginData* getPluginData() const;
index 31eed39..f3f0ff5 100644 (file)
@@ -55,7 +55,7 @@ unsigned Plugin::length() const
     return m_pluginData->plugins()[m_index]->mimes.size();
 }
 
-MimeType* Plugin::item(unsigned index)
+PassRefPtr<MimeType> Plugin::item(unsigned index)
 {
     const Vector<PluginInfo*>& plugins = m_pluginData->plugins();
     if (index >= plugins[m_index]->mimes.size())
@@ -79,7 +79,7 @@ bool Plugin::canGetItemsForName(const AtomicString& propertyName)
     return false;
 }
 
-MimeType* Plugin::nameGetter(const AtomicString& propertyName)
+PassRefPtr<MimeType> Plugin::nameGetter(const AtomicString& propertyName)
 {
     const Vector<MimeClassInfo*>& mimes = m_pluginData->mimes();
     for (unsigned i = 0; i < mimes.size(); ++i)
index 01ea312..5e5e8c3 100644 (file)
@@ -51,9 +51,9 @@ namespace WebCore {
 
         unsigned length() const;
 
-        MimeType* item(unsigned index);
+        PassRefPtr<MimeType> item(unsigned index);
         bool canGetItemsForName(const AtomicString& propertyName);
-        MimeType* nameGetter(const AtomicString& propertyName);
+        PassRefPtr<MimeType> nameGetter(const AtomicString& propertyName);
 
     private:
         Plugin(PluginData*, unsigned index);
index 3d9cd02..95b70a9 100644 (file)
@@ -44,7 +44,7 @@ unsigned PluginArray::length() const
     return data->plugins().size();
 }
 
-Plugin* PluginArray::item(unsigned index)
+PassRefPtr<Plugin> PluginArray::item(unsigned index)
 {
     PluginData* data = getPluginData();
     if (!data)
@@ -68,7 +68,7 @@ bool PluginArray::canGetItemsForName(const AtomicString& propertyName)
     return false;
 }
 
-Plugin* PluginArray::nameGetter(const AtomicString& propertyName)
+PassRefPtr<Plugin> PluginArray::nameGetter(const AtomicString& propertyName)
 {
     PluginData* data = getPluginData();
     if (!data)
index 41b895d..4da408d 100644 (file)
@@ -20,6 +20,7 @@
 #ifndef PluginArray_h
 #define PluginArray_h
 
+#include "Plugin.h"
 #include <wtf/PassRefPtr.h>
 #include <wtf/RefCounted.h>
 #include <wtf/Vector.h>
@@ -33,7 +34,6 @@ namespace WebCore {
 
     class AtomicString;
     class Frame;
-    class Plugin;
     class PluginData;
 
     // FIXME: Generated JSPluginArray.cpp doesn't include JSPlugin.h for toJS
@@ -47,9 +47,9 @@ namespace WebCore {
         void disconnectFrame() { m_frame = 0; }
 
         unsigned length() const;
-        Plugin* item(unsigned index);
+        PassRefPtr<Plugin> item(unsigned index);
         bool canGetItemsForName(const AtomicString& propertyName);
-        Plugin* nameGetter(const AtomicString& propertyName);
+        PassRefPtr<Plugin> nameGetter(const AtomicString& propertyName);
 
         void refresh(bool reload);
     private: