d3dxof: Improve error handling.

This commit is contained in:
Christian Costa 2008-12-14 18:55:10 +01:00 committed by Alexandre Julliard
parent 32ab7d298f
commit 0447013572
1 changed files with 31 additions and 11 deletions

View File

@ -147,6 +147,11 @@ HRESULT IDirectXFileImpl_Create(IUnknown* pUnkOuter, LPVOID* ppObj)
TRACE("(%p,%p)\n", pUnkOuter, ppObj); TRACE("(%p,%p)\n", pUnkOuter, ppObj);
object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectXFileImpl)); object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectXFileImpl));
if (!object)
{
ERR("Out of memory\n");
return DXFILEERR_BADALLOC;
}
object->lpVtbl.lpVtbl = &IDirectXFile_Vtbl; object->lpVtbl.lpVtbl = &IDirectXFile_Vtbl;
object->ref = 1; object->ref = 1;
@ -310,7 +315,7 @@ static HRESULT WINAPI IDirectXFileImpl_CreateEnumObject(IDirectXFile* iface, LPV
object->buf.buffer = HeapAlloc(GetProcessHeap(), 0, MAX_INPUT_SIZE+1); object->buf.buffer = HeapAlloc(GetProcessHeap(), 0, MAX_INPUT_SIZE+1);
if (!object->buf.buffer) if (!object->buf.buffer)
{ {
WARN("Out of memory\n"); ERR("Out of memory\n");
hr = DXFILEERR_BADALLOC; hr = DXFILEERR_BADALLOC;
goto error; goto error;
} }
@ -1452,6 +1457,11 @@ static HRESULT IDirectXFileDataImpl_Create(IDirectXFileDataImpl** ppObj)
TRACE("(%p)\n", ppObj); TRACE("(%p)\n", ppObj);
object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectXFileDataImpl)); object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectXFileDataImpl));
if (!object)
{
ERR("Out of memory\n");
return DXFILEERR_BADALLOC;
}
object->lpVtbl.lpVtbl = &IDirectXFileData_Vtbl; object->lpVtbl.lpVtbl = &IDirectXFileData_Vtbl;
object->ref = 1; object->ref = 1;
@ -1597,8 +1607,8 @@ static HRESULT WINAPI IDirectXFileDataImpl_GetNextObject(IDirectXFileData* iface
IDirectXFileDataReferenceImpl *object; IDirectXFileDataReferenceImpl *object;
hr = IDirectXFileDataReferenceImpl_Create(&object); hr = IDirectXFileDataReferenceImpl_Create(&object);
if (hr != S_OK) if (FAILED(hr))
return DXFILEERR_BADVALUE; return hr;
object->ptarget = This->pobj->childs[This->cur_enum_object++]->ptarget; object->ptarget = This->pobj->childs[This->cur_enum_object++]->ptarget;
@ -1609,8 +1619,8 @@ static HRESULT WINAPI IDirectXFileDataImpl_GetNextObject(IDirectXFileData* iface
IDirectXFileDataImpl *object; IDirectXFileDataImpl *object;
hr = IDirectXFileDataImpl_Create(&object); hr = IDirectXFileDataImpl_Create(&object);
if (hr != S_OK) if (FAILED(hr))
return DXFILEERR_BADVALUE; return hr;
object->pobj = This->pobj->childs[This->cur_enum_object++]; object->pobj = This->pobj->childs[This->cur_enum_object++];
object->cur_enum_object = 0; object->cur_enum_object = 0;
@ -1672,6 +1682,11 @@ static HRESULT IDirectXFileDataReferenceImpl_Create(IDirectXFileDataReferenceImp
TRACE("(%p)\n", ppObj); TRACE("(%p)\n", ppObj);
object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectXFileDataReferenceImpl)); object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectXFileDataReferenceImpl));
if (!object)
{
ERR("Out of memory\n");
return DXFILEERR_BADALLOC;
}
object->lpVtbl.lpVtbl = &IDirectXFileDataReference_Vtbl; object->lpVtbl.lpVtbl = &IDirectXFileDataReference_Vtbl;
object->ref = 1; object->ref = 1;
@ -1770,8 +1785,8 @@ static HRESULT WINAPI IDirectXFileDataReferenceImpl_Resolve(IDirectXFileDataRefe
return DXFILEERR_BADVALUE; return DXFILEERR_BADVALUE;
hr = IDirectXFileDataImpl_Create(&object); hr = IDirectXFileDataImpl_Create(&object);
if (hr != S_OK) if (FAILED(hr))
return DXFILEERR_BADVALUE; return hr;
object->pobj = This->ptarget; object->pobj = This->ptarget;
object->cur_enum_object = 0; object->cur_enum_object = 0;
@ -1800,6 +1815,11 @@ static HRESULT IDirectXFileEnumObjectImpl_Create(IDirectXFileEnumObjectImpl** pp
TRACE("(%p)\n", ppObj); TRACE("(%p)\n", ppObj);
object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectXFileEnumObjectImpl)); object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirectXFileEnumObjectImpl));
if (!object)
{
ERR("Out of memory\n");
return DXFILEERR_BADALLOC;
}
object->lpVtbl.lpVtbl = &IDirectXFileEnumObject_Vtbl; object->lpVtbl.lpVtbl = &IDirectXFileEnumObject_Vtbl;
object->ref = 1; object->ref = 1;
@ -2192,7 +2212,7 @@ static HRESULT WINAPI IDirectXFileEnumObjectImpl_GetNextDataObject(IDirectXFileE
pdata = HeapAlloc(GetProcessHeap(), 0, MAX_DATA_SIZE); pdata = HeapAlloc(GetProcessHeap(), 0, MAX_DATA_SIZE);
if (!pdata) if (!pdata)
{ {
WARN("Out of memory\n"); ERR("Out of memory\n");
return DXFILEERR_BADALLOC; return DXFILEERR_BADALLOC;
} }
This->buf.cur_pdata = This->buf.pdata = pdata; This->buf.cur_pdata = This->buf.pdata = pdata;
@ -2200,7 +2220,7 @@ static HRESULT WINAPI IDirectXFileEnumObjectImpl_GetNextDataObject(IDirectXFileE
pstrings = HeapAlloc(GetProcessHeap(), 0, MAX_STRINGS_BUFFER); pstrings = HeapAlloc(GetProcessHeap(), 0, MAX_STRINGS_BUFFER);
if (!pstrings) if (!pstrings)
{ {
WARN("Out of memory\n"); ERR("Out of memory\n");
HeapFree(GetProcessHeap(), 0, This->buf.pxo->pdata); HeapFree(GetProcessHeap(), 0, This->buf.pxo->pdata);
return DXFILEERR_BADALLOC; return DXFILEERR_BADALLOC;
} }