From 246fdb38d7c2fb3054b8f8528e11dc8f17691750 Mon Sep 17 00:00:00 2001 From: Wiimm Date: Tue, 26 Mar 2024 10:35:38 +0100 Subject: SZS 2.42a --- project/src/lib-lex.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'project/src/lib-lex.c') diff --git a/project/src/lib-lex.c b/project/src/lib-lex.c index 161a731..304b6a6 100644 --- a/project/src/lib-lex.c +++ b/project/src/lib-lex.c @@ -1234,7 +1234,7 @@ static bool RemoveElementLEX for ( i = 0, ss = lex->item; i < lex->item_used; i++, ss++ ) if ( *ss == li ) { - memmove(ss,ss+1,lex->item_used-i); + memmove(ss,ss+1,sizeof(*ss)*(lex->item_used-i)); lex->item_used--; FREE((lex_item_t*)li); UpdateHaveLex(lex); @@ -1492,8 +1492,7 @@ void ResetLEX ( lex_t * lex ) if (lex->item) { - uint i; - for ( i = 0; i < lex->item_used; i++ ) + for ( int i = 0; i < lex->item_used; i++ ) if (lex->item[i]) FREE(lex->item[i]); FREE(lex->item); @@ -3705,7 +3704,12 @@ bool PurgeLEX ( lex_t * lex ) } if (remove) - modified |= RemoveElementLEX(lex,*ss); + { + if (RemoveElementLEX(lex,*ss)) + modified |= 1; + else + i++; + } else i++; } -- cgit v1.3.1