diff --git a/dlls/oleaut32/olepicture.c b/dlls/oleaut32/olepicture.c index 246114c0301..d838920301d 100644 --- a/dlls/oleaut32/olepicture.c +++ b/dlls/oleaut32/olepicture.c @@ -1749,6 +1749,7 @@ static HRESULT WINAPI OLEPictureImpl_Save( HRESULT hResult = E_NOTIMPL; void * pIconData; unsigned int iDataSize; + DWORD header[2]; ULONG dummy; int iSerializeResult = 0; OLEPictureImpl *This = impl_from_IPersistStream(iface); @@ -1797,38 +1798,23 @@ static HRESULT WINAPI OLEPictureImpl_Save( FIXME("(%p,%p,%d), PICTYPE_BITMAP (format UNKNOWN, using BMP?) not implemented!\n",This,pStm,fClearDirty); break; } - if (iSerializeResult) { - /* - if (This->loadtime_magic != 0xdeadbeef) { - */ - if (1) { - DWORD header[2]; - header[0] = (This->loadtime_magic != 0xdeadbeef) ? This->loadtime_magic : 0x0000746c; - header[1] = iDataSize; - IStream_Write(pStm, header, 2 * sizeof(DWORD), &dummy); - } - IStream_Write(pStm, pIconData, iDataSize, &dummy); - - HeapFree(GetProcessHeap(), 0, This->data); - This->data = pIconData; - This->datalen = iDataSize; - hResult = S_OK; + if (!iSerializeResult) + { + hResult = E_FAIL; + break; } - } else { - /* - if (This->loadtime_magic != 0xdeadbeef) { - */ - if (1) { - DWORD header[2]; - header[0] = (This->loadtime_magic != 0xdeadbeef) ? This->loadtime_magic : 0x0000746c; - header[1] = This->datalen; - IStream_Write(pStm, header, 2 * sizeof(DWORD), &dummy); - } - IStream_Write(pStm, This->data, This->datalen, &dummy); - hResult = S_OK; + HeapFree(GetProcessHeap(), 0, This->data); + This->data = pIconData; + This->datalen = iDataSize; } + + header[0] = (This->loadtime_magic != 0xdeadbeef) ? This->loadtime_magic : 0x0000746c; + header[1] = This->datalen; + IStream_Write(pStm, header, 2 * sizeof(DWORD), &dummy); + IStream_Write(pStm, This->data, This->datalen, &dummy); + hResult = S_OK; break; case PICTYPE_METAFILE: FIXME("(%p,%p,%d), PICTYPE_METAFILE not implemented!\n",This,pStm,fClearDirty);