summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers/nine
diff options
context:
space:
mode:
authorAxel Davy <axel.davy@ens.fr>2016-10-12 19:10:53 +0200
committerAxel Davy <axel.davy@ens.fr>2016-10-13 21:16:35 +0200
commit0717cd975d85eb04389d84c54b796863aa537cf0 (patch)
tree8c78368f226e95dcc4c09ef0f23d5355ecc220d1 /src/gallium/state_trackers/nine
parent98b8ad61c6bc531646bec1e773b0f57f99e47159 (diff)
downloadexternal_mesa3d-0717cd975d85eb04389d84c54b796863aa537cf0.zip
external_mesa3d-0717cd975d85eb04389d84c54b796863aa537cf0.tar.gz
external_mesa3d-0717cd975d85eb04389d84c54b796863aa537cf0.tar.bz2
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 <axel.davy@ens.fr>
Diffstat (limited to 'src/gallium/state_trackers/nine')
-rw-r--r--src/gallium/state_trackers/nine/surface9.c4
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 dc31bb9..664b78f 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)) {