changeset 298:5a94c9b3181e

UltraRogue: clear the next_obj field when removing items from the floor. The next_obj field is a pointer which the top item in a stack uses to keep a list of the other items. When removing an item from the stack, rem_obj() failed to set next_obj to NULL, which can cause items in monster inventory to point to items earlier in the inventory list. That causes infinite co-recursion when saving or restoring.
author John "Elwin" Edwards
date Thu, 08 Feb 2018 20:54:34 -0500
parents 317166b49d8a
children 74351bf23e5e
files urogue/things.c
diffstat 1 files changed, 2 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/urogue/things.c	Thu Feb 08 18:56:15 2018 -0500
+++ b/urogue/things.c	Thu Feb 08 20:54:34 2018 -0500
@@ -292,6 +292,8 @@
 	if (op->next_obj)
             objptr->next_obj->l_prev = NULL;
+        objptr->next_obj = NULL;
         y = op->o_pos.y;
         x = op->o_pos.x;