[PATCH 7/8] wined3d: Abort state application when there is problem with newly created sampler object.
Józef Kucia
jkucia at codeweavers.com
Mon Mar 20 06:13:09 CDT 2017
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
dlls/wined3d/state.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/dlls/wined3d/state.c b/dlls/wined3d/state.c
index 409c161..8ff1b46 100644
--- a/dlls/wined3d/state.c
+++ b/dlls/wined3d/state.c
@@ -3633,17 +3633,17 @@ static void sampler(struct wined3d_context *context, const struct wined3d_state
if (FAILED(wined3d_sampler_create(device, &desc, NULL, &sampler)))
{
ERR("Failed to create sampler.\n");
- sampler = NULL;
+ return;
}
- else
+ if (wine_rb_put(&device->samplers, &desc, &sampler->entry) == -1)
{
- if (wine_rb_put(&device->samplers, &desc, &sampler->entry) == -1)
- ERR("Failed to insert sampler.\n");
+ ERR("Failed to insert sampler.\n");
+ wined3d_sampler_decref(sampler);
+ return;
}
}
- if (sampler)
- wined3d_sampler_bind(sampler, mapped_stage, texture, context);
+ wined3d_sampler_bind(sampler, mapped_stage, texture, context);
/* Trigger shader constant reloading (for NP2 texcoord fixup) */
if (!(texture->flags & WINED3D_TEXTURE_POW2_MAT_IDENT))
--
2.10.2
More information about the wine-patches
mailing list