Module: wine Branch: master Commit: de0a88538c9f8554a8658a90c5d4175121647aaa URL: http://source.winehq.org/git/wine.git/?a=commit;h=de0a88538c9f8554a8658a90c5...
Author: Józef Kucia jkucia@codeweavers.com Date: Mon Mar 20 12:13:09 2017 +0100
wined3d: Abort state application when there is problem with newly created sampler object.
Signed-off-by: Józef Kucia jkucia@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
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))