From 8aeddf0316f6e8a96afbbd35c2170c8ceb3849a2 Mon Sep 17 00:00:00 2001 From: drmortalwombat <90205530+drmortalwombat@users.noreply.github.com> Date: Mon, 30 Oct 2023 19:43:37 +0100 Subject: [PATCH] Fix previous fix --- oscar64/InterCode.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/oscar64/InterCode.cpp b/oscar64/InterCode.cpp index 26f4148..a11dc47 100644 --- a/oscar64/InterCode.cpp +++ b/oscar64/InterCode.cpp @@ -17588,15 +17588,17 @@ void InterCodeProcedure::RebuildIntegerRangeSet(void) // No need to re-init the loop specific parts, we are restarting. // Would lead to inifinte pumping weak - bound in some cases -#if 0 +#if 1 + int limit = 10; do { - DisassembleDebug("tr"); + DisassembleDebug("tr0"); + limit--; ResetVisited(); - } while (mEntryBlock->BuildGlobalIntegerRangeSets(true, mLocalVars, mParamVars)); + } while (mEntryBlock->BuildGlobalIntegerRangeSets(true, mLocalVars, mParamVars) && limit > 0); #endif do { - DisassembleDebug("tr"); + DisassembleDebug("tr1"); ResetVisited(); } while (mEntryBlock->BuildGlobalIntegerRangeSets(false, mLocalVars, mParamVars)); @@ -18434,7 +18436,7 @@ void InterCodeProcedure::Close(void) { GrowingTypeArray tstack(IT_NONE); - CheckFunc = !strcmp(mIdent->mString, "getReady"); + CheckFunc = !strcmp(mIdent->mString, "game_menu"); CheckCase = false; mEntryBlock = mBlocks[0];