From 2b985bda857fabcd07710265cafdd68e9dabfd50 Mon Sep 17 00:00:00 2001 From: Monster Iestyn Date: Thu, 28 Jul 2016 14:57:19 +0100 Subject: [PATCH 1/2] Make sure we detect if start >= numlines so we can deal with that properly for some apparent reason the compiler didn't like the while loop condition edit on its own (it complained about inline failures for P_MobjReadyToTrigger for some reason), so I had to add that extra bit above the while loop... and it was happy again, huh --- src/p_spec.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/p_spec.c b/src/p_spec.c index 0bd53027..e11235d8 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -1188,7 +1188,10 @@ INT32 P_FindSpecialLineFromTag(INT16 special, INT16 tag, INT32 start) { start++; - while (lines[start].special != special) + if (start >= (INT32)numlines) + return -1; + + while (start < (INT32)numlines && lines[start].special != special) start++; if (start >= (INT32)numlines) From 02d3382408adaa81bc68af99c5699747f345014b Mon Sep 17 00:00:00 2001 From: RedEnchilada Date: Sun, 7 Aug 2016 12:17:31 -0500 Subject: [PATCH 2/2] Leave a note to anyone foolish enough to try to fix this --- src/p_spec.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/p_spec.c b/src/p_spec.c index e11235d8..30b08ebb 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -1188,6 +1188,8 @@ INT32 P_FindSpecialLineFromTag(INT16 special, INT16 tag, INT32 start) { start++; + // This redundant check stops the compiler from complaining about function expansion + // elsewhere for some reason and everything is awful if (start >= (INT32)numlines) return -1;