Reviewed by timo, ggaren.
authoraroben <aroben@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 13 Sep 2006 00:25:14 +0000 (00:25 +0000)
committeraroben <aroben@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 13 Sep 2006 00:25:14 +0000 (00:25 +0000)
        Make Icon ref-counted.

        * platform/FileChooser.h: Store m_icon as a RefPtr instead of
        auto_ptr.
        * platform/Icon.h: Inherit from Shared<Icon>
        * platform/mac/FileChooserMac.mm:
        (WebCore::FileChooser::chooseFile): Update m_icon usage
        * platform/mac/IconMac.mm:
        (WebCore::Icon::newIconForFile): Return a RefPtr instead of an
        auto_ptr

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

WebCore/ChangeLog
WebCore/platform/FileChooser.h
WebCore/platform/Icon.h
WebCore/platform/mac/FileChooserMac.mm
WebCore/platform/mac/IconMac.mm

index e82b501eb969846730eb24f727db53ca307cbc36..1205b2b1952ad60acfe7482016f5098bea37da0f 100644 (file)
@@ -1,3 +1,18 @@
+2006-09-12  Adam Roben  <aroben@apple.com>
+
+        Reviewed by timo, ggaren.
+
+        Make Icon ref-counted.
+
+        * platform/FileChooser.h: Store m_icon as a RefPtr instead of
+        auto_ptr.
+        * platform/Icon.h: Inherit from Shared<Icon>
+        * platform/mac/FileChooserMac.mm:
+        (WebCore::FileChooser::chooseFile): Update m_icon usage
+        * platform/mac/IconMac.mm:
+        (WebCore::Icon::newIconForFile): Return a RefPtr instead of an
+        auto_ptr
+
 === Safari-521.26 ===
 
 2006-09-12  Nikolas Zimmermann  <zimmermann@kde.org>
index 8f09bb9cb1bc5e73cc7bc77b1e9f97c64d6bf297..6758f04e457f04c42c869e095ddcfe4cdfb416c0 100644 (file)
@@ -23,7 +23,7 @@
 
 #include "Icon.h"
 #include "PlatformString.h"
-#include <wtf/OwnPtr.h>
+#include <wtf/RefPtr.h>
 
 #if PLATFORM(MAC)
 #ifdef __OBJC__
@@ -62,7 +62,7 @@ public:
 private:
     Document* m_document;
     String m_filename;
-    OwnPtr<Icon> m_icon;
+    RefPtr<Icon> m_icon;
     RenderFileUploadControl* m_uploadControl;
     
 #if PLATFORM(MAC)
index bde95b8b87df1f37e808957d43479ef894aafd64..ff3df64ca6be43ffc1d1646e90b17c9b57b59e4f 100644 (file)
 #ifndef ICON_H_
 #define ICON_H_
 
+#include "Shared.h"
+
 #include <wtf/Noncopyable.h>
+#include <wtf/PassRefPtr.h>
 
 #if PLATFORM(MAC)
 #ifdef __OBJC__
@@ -33,20 +36,18 @@ class NSImage;
 typedef struct HICON__* HICON;
 #endif
 
-using namespace std;
-
 namespace WebCore {
 
 class GraphicsContext;
 class IntRect;
 class String;
     
-class Icon : Noncopyable {
+class Icon : public Shared<Icon>, Noncopyable {
 public:
     Icon();
     ~Icon();
     
-    static auto_ptr<Icon> newIconForFile(const String& filename);
+    static PassRefPtr<Icon> newIconForFile(const String& filename);
 
     void paint(GraphicsContext*, const IntRect&);
     
index 0dc5170186e7d8f22f922e6ad0212433bb232f8c..c51bd1ccdffa641abb2369feccb3d50c1d53d46c 100644 (file)
@@ -133,9 +133,9 @@ void FileChooser::chooseFile(const String& filename)
     
     // Need unsigned 0 here to disambiguate String::operator[] from operator(NSString*, int)[]
     if (!m_filename.length() || m_filename[0U] != '/')
-        m_icon.set(0);
+        m_icon = 0;
     else
-        m_icon.set(Icon::newIconForFile(m_filename).release());
+        m_icon = Icon::newIconForFile(m_filename);
     
     uploadControl()->valueChanged();
 }
index c68c7771b713d58428887410251d705946acef1d..f2f133de937f4307fb81a490f21f763aa1bb4a43 100644 (file)
@@ -38,13 +38,13 @@ Icon::~Icon()
     [m_nsImage release];
 }
 
-auto_ptr<Icon> Icon::newIconForFile(const String& filename)
+PassRefPtr<Icon> Icon::newIconForFile(const String& filename)
 {
     NSImage* fileIcon = [[[NSWorkspace sharedWorkspace] iconForFile:filename] retain];
     if (!fileIcon)
-        return auto_ptr<Icon>(0);
+        return PassRefPtr<Icon>(0);
     
-    auto_ptr<Icon> icon(new Icon());
+    PassRefPtr<Icon> icon(new Icon());
 
     icon->m_nsImage = fileIcon;