From 8b77af73780f72bfc128f4e960e4c6a8f07df5f4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gustaf=20Alh=C3=A4ll?= <gustaf@hanicef.me>
Date: Mon, 10 Apr 2023 14:55:19 +0200
Subject: [PATCH] Fix segfault when killing wall spike while it moves

---
 src/p_mobj.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/p_mobj.c b/src/p_mobj.c
index c8adb6f1d6..a290bd0749 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -10061,6 +10061,8 @@ static boolean P_FuseThink(mobj_t *mobj)
 	case MT_SPIKE:
 	case MT_WALLSPIKE:
 		P_SetMobjState(mobj, mobj->state->nextstate);
+		if (P_MobjWasRemoved(mobj))
+			return false;
 		mobj->fuse = mobj->spawnpoint ? mobj->spawnpoint->args[0] : mobj->info->speed;
 		break;
 	case MT_NIGHTSCORE:
@@ -10222,6 +10224,9 @@ void P_MobjThinker(mobj_t *mobj)
 	if (mobj->flags2 & MF2_FIRING)
 		P_FiringThink(mobj);
 
+	if (P_MobjWasRemoved(mobj))
+		return;
+
 	if (mobj->type == MT_AMBIENT)
 	{
 		if (leveltime % mobj->health)
-- 
GitLab