From 0826afb33469dcfa924efbbd9b936b353cab04a5 Mon Sep 17 00:00:00 2001 From: Nishi Date: Sun, 5 Jul 2026 06:51:43 +0900 Subject: [PATCH] fix color leak 2 --- src/draw.c | 9 ++++----- src/text/text.c | 2 ++ 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/draw.c b/src/draw.c index 2fd0d47..ce86d90 100644 --- a/src/draw.c +++ b/src/draw.c @@ -236,7 +236,7 @@ void MwDrawDiamond(MwWidget handle, MwRect* rect, MwLLColor color, int invert) { int ColorDiff = get_color_diff(handle) + (MwGetInteger(handle, MwNmodernLook) ? 48 : 0); MwLLColor darker = MwLightenColor(handle, color, -ColorDiff, -ColorDiff, -ColorDiff); MwLLColor lighter = MwLightenColor(handle, color, ColorDiff, ColorDiff, ColorDiff); - MwLLColor col = invert ? MwLightenColor(handle, color, -8, -8, -8) : color; + MwLLColor col = invert ? MwLightenColor(handle, color, -8, -8, -8) : MwLightenColor(handle, color, 0, 0, 0); color_set_disabled_if_disabled(handle, col); color_set_disabled_if_disabled(handle, darker); color_set_disabled_if_disabled(handle, lighter); @@ -295,7 +295,7 @@ void MwDrawDiamond(MwWidget handle, MwRect* rect, MwLLColor color, int invert) { MwLLPolygon(handle->lowlevel, p, 4, col); - if(col != color) MwLLFreeColor(col); + MwLLFreeColor(col); MwLLFreeColor(lighter); MwLLFreeColor(darker); } @@ -442,7 +442,7 @@ void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int invert, int ColorDiff = get_color_diff(handle); MwLLColor darker = MwLightenColor(handle, color, -ColorDiff, -ColorDiff, -ColorDiff); MwLLColor lighter = MwLightenColor(handle, color, ColorDiff, ColorDiff, ColorDiff); - MwLLColor col = invert ? MwLightenColor(handle, color, -8, -8, -8) : color; + MwLLColor col = invert ? MwLightenColor(handle, color, -8, -8, -8) : MwLightenColor(handle, color, 0, 0, 0); double deg = 30 * ((direction == MwEAST || direction == MwWEST) ? 2 : 1); double c = cos(deg / 180 * M_PI); double s = sin(deg / 180 * M_PI); @@ -650,8 +650,7 @@ void MwDrawTriangle(MwWidget handle, MwRect* rect, MwLLColor color, int invert, } MwLLPolygon(handle->lowlevel, p4, 3, col); - if(color != col) MwLLFreeColor(col); - + MwLLFreeColor(col); MwLLFreeColor(lighter); MwLLFreeColor(darker); } diff --git a/src/text/text.c b/src/text/text.c index b6297e3..786089b 100644 --- a/src/text/text.c +++ b/src/text/text.c @@ -90,6 +90,8 @@ void MwDrawText(MwWidget handle, MwFLFont ttf, MwPoint* point, const char* text, fadedColor->common.red = fadedColor->common.red + (c->common.red - fadedColor->common.red) * 0.5; fadedColor->common.green = fadedColor->common.green + (c->common.green - fadedColor->common.green) * 0.5; fadedColor->common.blue = fadedColor->common.blue + (c->common.blue - fadedColor->common.blue) * 0.5; + + MwLLFreeColor(c); } }