diff options
author | Axel Davy <[email protected]> | 2016-10-12 19:10:53 +0200 |
---|---|---|
committer | Axel Davy <[email protected]> | 2016-10-13 21:16:35 +0200 |
commit | 0717cd975d85eb04389d84c54b796863aa537cf0 (patch) | |
tree | 8c78368f226e95dcc4c09ef0f23d5355ecc220d1 | |
parent | 98b8ad61c6bc531646bec1e773b0f57f99e47159 (diff) |
st/nine: Fix possible segfault in surface ctor
Regression introduced by
ba0274c7d6c3b77a36bbe1b444f427b0c873e2f3
Check the resource exists before assigning it
a flag (and use This->base.resource instead
of pResource, since the former may have a newly
allocate resource, while the latter would be
NULL).
This should reintroduce the behaviour of previous
code.
Signed-off-by: Axel Davy <[email protected]>
-rw-r--r-- | src/gallium/state_trackers/nine/surface9.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/nine/surface9.c b/src/gallium/state_trackers/nine/surface9.c index dc31bb93786..664b78f8d5e 100644 --- a/src/gallium/state_trackers/nine/surface9.c +++ b/src/gallium/state_trackers/nine/surface9.c @@ -187,8 +187,8 @@ NineSurface9_ctor( struct NineSurface9 *This, This->stride = nine_format_get_stride(This->base.info.format, pDesc->Width); - if (pDesc->Usage & D3DUSAGE_DYNAMIC) - pResource->flags |= NINE_RESOURCE_FLAG_LOCKABLE; + if (This->base.resource && (pDesc->Usage & D3DUSAGE_DYNAMIC)) + This->base.resource->flags |= NINE_RESOURCE_FLAG_LOCKABLE; /* TODO: investigate what else exactly needs to be cleared */ if (This->base.resource && (pDesc->Usage & D3DUSAGE_RENDERTARGET)) { |