summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorMasamitsu MURASE <[email protected]>2012-06-24 06:28:17 +0900
committerMasamitsu MURASE <[email protected]>2012-06-24 06:28:17 +0900
commit7778b5ca1c82062e29eb41b22839a1d174dd82e1 (patch)
tree612e4246c183e044eae1589b654819b9442e1fd8 /src
parent7a17377c644d421fae71bd8d61e6f7dc744faf62 (diff)
downloadmruby-7778b5ca1c82062e29eb41b22839a1d174dd82e1.tar.gz
mruby-7778b5ca1c82062e29eb41b22839a1d174dd82e1.zip
Implement garbage collection for struct.
Diffstat (limited to 'src')
-rw-r--r--src/gc.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/gc.c b/src/gc.c
index a7537a015..a17cd64c8 100644
--- a/src/gc.c
+++ b/src/gc.c
@@ -430,6 +430,18 @@ gc_mark_children(mrb_state *mrb, struct RBasic *obj)
break;
#endif
+#ifdef ENABLE_STRUCT
+ case MRB_TT_STRUCT:
+ {
+ struct RStruct *s = (struct RStruct*)obj;
+ long i;
+ for (i=0; i<s->len; i++){
+ mrb_gc_mark_value(mrb, s->ptr[i]);
+ }
+ }
+ break;
+#endif
+
default:
break;
}