From eeb6e9d417ec00e2e87b8049d1800be69737c247 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Mon, 5 Apr 2021 21:32:48 +0100 Subject: [PATCH] Fix: Thread unsafe use of sprite cache in OpenGLBackend::DrawMouseCursor See also: #8870 See also: #8977 --- src/video/opengl.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/video/opengl.cpp b/src/video/opengl.cpp index e74ab7b5bc..c346fd1528 100644 --- a/src/video/opengl.cpp +++ b/src/video/opengl.cpp @@ -1060,9 +1060,9 @@ void OpenGLBackend::DrawMouseCursor() /* Sprites are cached by PopulateCursorCache(). */ if (this->cursor_cache.Contains(sprite)) { - const Sprite *spr = GetSprite(sprite, ST_NORMAL); + Sprite *spr = this->cursor_cache.Get(sprite); - this->RenderOglSprite((OpenGLSprite *)this->cursor_cache.Get(sprite)->data, _cursor.sprite_seq[i].pal, + this->RenderOglSprite((OpenGLSprite *)spr->data, _cursor.sprite_seq[i].pal, _cursor.pos.x + _cursor.sprite_pos[i].x + UnScaleByZoom(spr->x_offs, ZOOM_LVL_GUI), _cursor.pos.y + _cursor.sprite_pos[i].y + UnScaleByZoom(spr->y_offs, ZOOM_LVL_GUI), ZOOM_LVL_GUI);