home
·
contact
·
privacy
projects
/
plomrogue
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
3f85df0
)
Fixed bug that freed non-existing map objects, triggered segfaults.
author
Christian Heller
<c.heller@plomlompom.de>
Sat, 31 Aug 2013 13:46:12 +0000
(15:46 +0200)
committer
Christian Heller
<c.heller@plomlompom.de>
Sat, 31 Aug 2013 13:46:12 +0000
(15:46 +0200)
src/map_objects.c
patch
|
blob
|
history
diff --git
a/src/map_objects.c
b/src/map_objects.c
index 28d9b146864e70ece8f99ebd3c0c81255c3ed1b6..d220556907d29c0576531a6fd964d078e5d04693 100644
(file)
--- a/
src/map_objects.c
+++ b/
src/map_objects.c
@@
-308,10
+308,11
@@
extern void * build_map_objects(struct World * world, void * start, char def_id,
extern void free_items(struct Item * item)
{
extern void free_items(struct Item * item)
{
- if (0
!= item->map_obj.next
)
+ if (0
== item
)
{
{
-
free_items((struct Item *) item->map_obj.next)
;
+
return
;
}
}
+ free_items((struct Item *) item->map_obj.next);
free(item);
}
free(item);
}
@@
-319,10
+320,11
@@
extern void free_items(struct Item * item)
extern void free_monsters(struct Monster * monster)
{
extern void free_monsters(struct Monster * monster)
{
- if (0
!= monster->map_obj.next
)
+ if (0
== monster
)
{
{
-
free_monsters((struct Monster *) monster->map_obj.next)
;
+
return
;
}
}
+ free_monsters((struct Monster *) monster->map_obj.next);
free(monster);
}
free(monster);
}