diff options
Diffstat (limited to 'WebKit/win/MemoryStream.cpp')
-rw-r--r-- | WebKit/win/MemoryStream.cpp | 9 |
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; } |