diff --git a/src/lib/sw_engine/tvgSwRle.cpp b/src/lib/sw_engine/tvgSwRle.cpp index 352e42c2..3255b6cc 100644 --- a/src/lib/sw_engine/tvgSwRle.cpp +++ b/src/lib/sw_engine/tvgSwRle.cpp @@ -917,7 +917,12 @@ void rleFree(SwRleData* rle) void updateRleSpans(SwRleData *rle, SwSpan* curSpans, uint32_t size) { - if (!rle->spans || !curSpans || size == 0) return; + if (size == 0) { + rle->size = 0; + return; + } + + if (!rle->spans || !curSpans) return; rle->size = size; rle->spans = static_cast(realloc(rle->spans, rle->size * sizeof(SwSpan)));