From de0a88538c9f8554a8658a90c5d4175121647aaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B3zef=20Kucia?= Date: Mon, 20 Mar 2017 12:13:09 +0100 Subject: [PATCH] wined3d: Abort state application when there is problem with newly created sampler object. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Józef Kucia Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- 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 409c1616024..8ff1b46f4b3 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))