Signed-off-by: Henri Verbeet hverbeet@codeweavers.com --- dlls/wined3d/context.c | 2 -- dlls/wined3d/device.c | 3 +++ 2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c index b239813d226..4a73cbbda13 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c @@ -2347,8 +2347,6 @@ void wined3d_context_destroy(struct wined3d_context *context) return; }
- device->shader_backend->shader_free_context_data(context); - device->adapter->fragment_pipe->free_context_data(context); device_context_remove(device, context);
wined3d_context_gl_destroy(wined3d_context_gl(context)); diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index e25565da7f5..df491e1641e 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -168,6 +168,9 @@ void device_context_remove(struct wined3d_device *device, struct wined3d_context
TRACE("Removing context %p.\n", context);
+ device->adapter->fragment_pipe->free_context_data(context); + device->shader_backend->shader_free_context_data(context); + for (i = 0; i < device->context_count; ++i) { if (device->contexts[i] == context)