From: Patrick Rudolph Date: Sat, 24 Sep 2016 08:46:27 +0000 (+0200) Subject: st/nine: Assert on buffer creation failure X-Git-Tag: upstream/17.1.0~5735 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f04fa0a62c6d39659c38eabd63bff54f0d2833fe;p=platform%2Fupstream%2Fmesa.git st/nine: Assert on buffer creation failure Add an assert to make sure buffer creation doesn't fail. Add error handling in calling functions. Signed-off-by: Patrick Rudolph Reviewed-by: Axel Davy --- diff --git a/src/gallium/state_trackers/nine/swapchain9.c b/src/gallium/state_trackers/nine/swapchain9.c index 9459786..e611118 100644 --- a/src/gallium/state_trackers/nine/swapchain9.c +++ b/src/gallium/state_trackers/nine/swapchain9.c @@ -85,6 +85,7 @@ D3DWindowBuffer_create(struct NineSwapChain9 *This, D3DWindowBuffer *ret; struct winsys_handle whandle; int stride, dmaBufFd; + HRESULT hr; memset(&whandle, 0, sizeof(whandle)); whandle.type = DRM_API_HANDLE_TYPE_FD; @@ -96,14 +97,20 @@ D3DWindowBuffer_create(struct NineSwapChain9 *This, PIPE_HANDLE_USAGE_READ); stride = whandle.stride; dmaBufFd = whandle.handle; - ID3DPresent_NewD3DWindowBufferFromDmaBuf(This->present, - dmaBufFd, - resource->width0, - resource->height0, - stride, - depth, - 32, - &ret); + hr = ID3DPresent_NewD3DWindowBufferFromDmaBuf(This->present, + dmaBufFd, + resource->width0, + resource->height0, + stride, + depth, + 32, + &ret); + assert (SUCCEEDED(hr)); + + if (FAILED(hr)) { + ERR("Failed to create new D3DWindowBufferFromDmaBuf\n"); + return NULL; + } return ret; } @@ -339,6 +346,9 @@ NineSwapChain9_Resize( struct NineSwapChain9 *This, } This->present_handles[i] = D3DWindowBuffer_create(This, resource, depth, false); pipe_resource_reference(&resource, NULL); + if (!This->present_handles[i]) { + return D3DERR_DRIVERINTERNALERROR; + } } if (pParams->EnableAutoDepthStencil) { tmplt.bind = d3d9_get_pipe_depth_format_bindings(pParams->AutoDepthStencilFormat);