From 3992dfae84dab679d822dc1745c53f8b7ae8140d Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Thu, 23 Dec 2021 21:24:44 +0100 Subject: [PATCH] - fixed: When merging clip nodes the redundant one needs to be deleted with RemoveRange. Calling Free is not enough. --- source/core/rendering/scene/hw_clipper.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/core/rendering/scene/hw_clipper.cpp b/source/core/rendering/scene/hw_clipper.cpp index 88a4f1185..25395a141 100644 --- a/source/core/rendering/scene/hw_clipper.cpp +++ b/source/core/rendering/scene/hw_clipper.cpp @@ -111,15 +111,17 @@ bool Clipper::InsertRange(ClipNode* prev, ClipNode* node) if (prev->next && prev->end >= prev->next->start && prev->next->topclip <= prev->next->bottomclip) { prev->end = prev->next->end; - Free(prev->next); + RemoveRange(prev->next); return true; } + ValidateList(); return false; } else if (prev->next && node->end >= prev->next->start && prev->next->topclip <= prev->next->bottomclip) { prev->next->start = node->start; Free(node); + ValidateList(); return false; } } @@ -637,6 +639,7 @@ void Clipper::RemoveClipRange(int start, int end) node = node->next; } } + ValidateList(); }