From b0487d4f586ad7f3c80acbb07080a0a809eaa92f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net> Date: Tue, 7 Apr 1998 20:35:51 -0700 Subject: [PATCH] bugfix Rev: src/svalue.c:1.27 --- src/svalue.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/svalue.c b/src/svalue.c index 47c113306e..9b11466511 100644 --- a/src/svalue.c +++ b/src/svalue.c @@ -20,7 +20,7 @@ #include "pike_macros.h" #include <ctype.h> -RCSID("$Id: svalue.c,v 1.26 1998/04/08 03:31:49 hubbe Exp $"); +RCSID("$Id: svalue.c,v 1.27 1998/04/08 03:35:51 hubbe Exp $"); struct svalue dest_ob_zero = { T_INT, 0 }; @@ -1101,15 +1101,27 @@ void gc_mark_svalues(struct svalue *s, int num) void gc_mark_short_svalue(union anything *u, TYPE_T type) { - if(!u->refs) return; switch(type) { - case T_ARRAY: gc_mark_array_as_referenced(u->array); break; - case T_MULTISET: gc_mark_multiset_as_referenced(u->multiset); break; - case T_MAPPING: gc_mark_mapping_as_referenced(u->mapping); break; - case T_PROGRAM: gc_mark_program_as_referenced(u->program); break; + case T_ARRAY: + if(!u->refs) return; + gc_mark_array_as_referenced(u->array); + break; + case T_MULTISET: + if(!u->refs) return; + gc_mark_multiset_as_referenced(u->multiset); + break; + case T_MAPPING: + if(!u->refs) return; + gc_mark_mapping_as_referenced(u->mapping); + break; + case T_PROGRAM: + if(!u->refs) return; + gc_mark_program_as_referenced(u->program); + break; case T_OBJECT: + if(!u->refs) return; if(u->object->prog) { gc_mark_object_as_referenced(u->object); -- GitLab