mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-26 03:30:46 +00:00
Fix a few instances where bitptr wasn't properly set after writing to the compiled script
git-svn-id: https://svn.eduke32.com/eduke32@5535 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
31e89f12b2
commit
15b57d4dcf
1 changed files with 14 additions and 0 deletions
|
@ -2783,6 +2783,7 @@ static void C_FillEventBreakStackWithJump(intptr_t *breakPtr, intptr_t destinati
|
||||||
{
|
{
|
||||||
breakPtr = script + (intptr_t)breakPtr;
|
breakPtr = script + (intptr_t)breakPtr;
|
||||||
intptr_t const tempPtr = *breakPtr;
|
intptr_t const tempPtr = *breakPtr;
|
||||||
|
BITPTR_CLEAR(breakPtr-script);
|
||||||
*breakPtr = destination;
|
*breakPtr = destination;
|
||||||
breakPtr = (intptr_t *)tempPtr;
|
breakPtr = (intptr_t *)tempPtr;
|
||||||
}
|
}
|
||||||
|
@ -3510,9 +3511,12 @@ DO_DEFSTATE:
|
||||||
else // if (tw == CON_APPENDEVENT)
|
else // if (tw == CON_APPENDEVENT)
|
||||||
{
|
{
|
||||||
intptr_t *previous_event_end = script + apScriptGameEventEnd[j];
|
intptr_t *previous_event_end = script + apScriptGameEventEnd[j];
|
||||||
|
BITPTR_CLEAR(previous_event_end-script);
|
||||||
*(previous_event_end++) = CON_JUMP | (g_lineNumber << 12);
|
*(previous_event_end++) = CON_JUMP | (g_lineNumber << 12);
|
||||||
|
BITPTR_CLEAR(previous_event_end-script);
|
||||||
*(previous_event_end++) = MAXGAMEVARS;
|
*(previous_event_end++) = MAXGAMEVARS;
|
||||||
C_FillEventBreakStackWithJump((intptr_t *)*previous_event_end, g_parsingEventPtr);
|
C_FillEventBreakStackWithJump((intptr_t *)*previous_event_end, g_parsingEventPtr);
|
||||||
|
BITPTR_CLEAR(previous_event_end-script);
|
||||||
*(previous_event_end++) = g_parsingEventPtr;
|
*(previous_event_end++) = g_parsingEventPtr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5778,9 +5782,13 @@ repeatcase:
|
||||||
if (previous_event)
|
if (previous_event)
|
||||||
{
|
{
|
||||||
g_scriptPtr--;
|
g_scriptPtr--;
|
||||||
|
BITPTR_CLEAR(g_scriptPtr-script);
|
||||||
*(g_scriptPtr++) = CON_JUMP | (g_lineNumber << 12);
|
*(g_scriptPtr++) = CON_JUMP | (g_lineNumber << 12);
|
||||||
|
BITPTR_CLEAR(g_scriptPtr-script);
|
||||||
*(g_scriptPtr++) = MAXGAMEVARS;
|
*(g_scriptPtr++) = MAXGAMEVARS;
|
||||||
|
BITPTR_CLEAR(g_scriptPtr-script);
|
||||||
*(g_scriptPtr++) = previous_event;
|
*(g_scriptPtr++) = previous_event;
|
||||||
|
BITPTR_CLEAR(g_scriptPtr-script);
|
||||||
*(g_scriptPtr++) = CON_ENDEVENT | (g_lineNumber << 12);
|
*(g_scriptPtr++) = CON_ENDEVENT | (g_lineNumber << 12);
|
||||||
|
|
||||||
C_FillEventBreakStackWithJump((intptr_t *)g_parsingEventBreakPtr, previous_event);
|
C_FillEventBreakStackWithJump((intptr_t *)g_parsingEventBreakPtr, previous_event);
|
||||||
|
@ -5791,8 +5799,11 @@ repeatcase:
|
||||||
{
|
{
|
||||||
// pad space for the next potential appendevent
|
// pad space for the next potential appendevent
|
||||||
apScriptGameEventEnd[g_currentEvent] = (g_scriptPtr-1)-script;
|
apScriptGameEventEnd[g_currentEvent] = (g_scriptPtr-1)-script;
|
||||||
|
BITPTR_CLEAR(g_scriptPtr-script);
|
||||||
*(g_scriptPtr++) = CON_ENDEVENT | (g_lineNumber << 12);
|
*(g_scriptPtr++) = CON_ENDEVENT | (g_lineNumber << 12);
|
||||||
|
BITPTR_CLEAR(g_scriptPtr-script);
|
||||||
*(g_scriptPtr++) = g_parsingEventBreakPtr;
|
*(g_scriptPtr++) = g_parsingEventBreakPtr;
|
||||||
|
BITPTR_CLEAR(g_scriptPtr-script);
|
||||||
*(g_scriptPtr++) = CON_ENDEVENT | (g_lineNumber << 12);
|
*(g_scriptPtr++) = CON_ENDEVENT | (g_lineNumber << 12);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5839,8 +5850,11 @@ repeatcase:
|
||||||
else if (g_parsingEventPtr)
|
else if (g_parsingEventPtr)
|
||||||
{
|
{
|
||||||
g_scriptPtr--;
|
g_scriptPtr--;
|
||||||
|
BITPTR_CLEAR(g_scriptPtr-script);
|
||||||
*(g_scriptPtr++) = CON_JUMP | (g_lineNumber << 12);
|
*(g_scriptPtr++) = CON_JUMP | (g_lineNumber << 12);
|
||||||
|
BITPTR_CLEAR(g_scriptPtr-script);
|
||||||
*(g_scriptPtr++) = MAXGAMEVARS;
|
*(g_scriptPtr++) = MAXGAMEVARS;
|
||||||
|
BITPTR_CLEAR(g_scriptPtr-script);
|
||||||
*g_scriptPtr = g_parsingEventBreakPtr;
|
*g_scriptPtr = g_parsingEventBreakPtr;
|
||||||
g_parsingEventBreakPtr = g_scriptPtr++ - script;
|
g_parsingEventBreakPtr = g_scriptPtr++ - script;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue