summaryrefslogtreecommitdiffstats
path: root/WebKit/win/MemoryStream.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/win/MemoryStream.cpp')
-rw-r--r--WebKit/win/MemoryStream.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/WebKit/win/MemoryStream.cpp b/WebKit/win/MemoryStream.cpp
index ac95e0f..757e51c 100644
--- a/WebKit/win/MemoryStream.cpp
+++ b/WebKit/win/MemoryStream.cpp
@@ -47,11 +47,9 @@ MemoryStream::~MemoryStream()
gClassNameCount.remove("MemoryStream");
}
-MemoryStream* MemoryStream::createInstance(PassRefPtr<SharedBuffer> buffer)
+COMPtr<MemoryStream> MemoryStream::createInstance(PassRefPtr<SharedBuffer> buffer)
{
- MemoryStream* instance = new MemoryStream(buffer);
- instance->AddRef();
- return instance;
+ return new MemoryStream(buffer);
}
// IUnknown -------------------------------------------------------------------
@@ -255,6 +253,7 @@ HRESULT STDMETHODCALLTYPE MemoryStream::Stat(
HRESULT STDMETHODCALLTYPE MemoryStream::Clone(
/* [out] */ IStream** ppstm)
{
- *ppstm = MemoryStream::createInstance(m_buffer);
+ MemoryStream::createInstance(m_buffer).copyRefTo(ppstm);
+ // FIXME: MSDN says we should be returning STG_E_INSUFFICIENT_MEMORY instead of E_OUTOFMEMORY here.
return (*ppstm) ? S_OK : E_OUTOFMEMORY;
}