Make FileChooser ref-counted.
* platform/FileChooser.h:
* platform/mac/FileChooserMac.mm:
(WebCore::FileChooser::create):
* rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::RenderFileUploadControl):
(WebCore::RenderFileUploadControl::~RenderFileUploadControl):
* rendering/RenderFileUploadControl.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@16983
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2006-10-10 Adam Roben <aroben@apple.com>
+
+ Reviewed by Oliver.
+
+ Make FileChooser ref-counted.
+
+ * platform/FileChooser.h:
+ * platform/mac/FileChooserMac.mm:
+ (WebCore::FileChooser::create):
+ * rendering/RenderFileUploadControl.cpp:
+ (WebCore::RenderFileUploadControl::RenderFileUploadControl):
+ (WebCore::RenderFileUploadControl::~RenderFileUploadControl):
+ * rendering/RenderFileUploadControl.h:
+
2006-10-10 Sam Weinig <sam.weinig@gmail.com>
Reviewed by Tim H.
class RenderFileUploadControl;
class String;
-class FileChooser {
+class FileChooser : public Shared<FileChooser> {
public:
- FileChooser(Document*, RenderFileUploadControl*);
+ static PassRefPtr<FileChooser> create(Document*, RenderFileUploadControl*);
~FileChooser();
void openFileChooser();
String m_filename;
RefPtr<Icon> m_icon;
RenderFileUploadControl* m_uploadControl;
+
+ FileChooser(Document*, RenderFileUploadControl*);
#if PLATFORM(MAC)
OpenPanelController* m_controller;
namespace WebCore {
+PassRefPtr<FileChooser> FileChooser::create(Document* document, RenderFileUploadControl* uploadControl)
+{
+ PassRefPtr<FileChooser> fileChooser(new FileChooser(document, uploadControl));
+ return fileChooser;
+}
+
FileChooser::FileChooser(Document* document, RenderFileUploadControl* uploadControl)
: m_document(document)
, m_icon(0)
RenderFileUploadControl::RenderFileUploadControl(Node* node)
: RenderBlock(node)
, m_button(0)
- , m_fileChooser(new FileChooser(document(), this))
+ , m_fileChooser(FileChooser::create(document(), this))
{
}
m_button->detach();
if (m_fileChooser) {
m_fileChooser->uploadControlDetaching();
- delete m_fileChooser;
}
}
#include "FileChooser.h"
#include "HTMLInputElement.h"
+#include "Shared.h"
namespace WebCore {
RenderStyle* createButtonStyle(RenderStyle* parentStyle = 0);
RefPtr<HTMLFileUploadInnerButtonElement> m_button;
- FileChooser* m_fileChooser;
+ RefPtr<FileChooser> m_fileChooser;
};
}