about summary refs log tree commit homepage
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2009-08-29 16:08:55 -0700
committerEric Wong <normalperson@yhbt.net>2009-08-29 16:08:55 -0700
commite4bdbdcfcbf51ee91e4192ef361ba73e80e14dcc (patch)
treea16560d5d9168e89a44c2cb7c10f109e1df4982c
parent4cae518fd0b2ba81114ed4cc26eb1704a1f71e28 (diff)
downloadclogger-e4bdbdcfcbf51ee91e4192ef361ba73e80e14dcc.tar.gz
rb_gc_mark_locations doesn't seem in common use for structs and
there was a fencepost error so the response element didn't seem
to be marked at times.

This should fix random errors I've been seeing on big/longer
response bodies.
-rw-r--r--ext/clogger_ext/clogger.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/ext/clogger_ext/clogger.c b/ext/clogger_ext/clogger.c
index 493f5ae..3c6d25a 100644
--- a/ext/clogger_ext/clogger.c
+++ b/ext/clogger_ext/clogger.c
@@ -248,7 +248,13 @@ static void clogger_mark(void *ptr)
 {
         struct clogger *c = ptr;
 
-        rb_gc_mark_locations(&c->app, &c->response);
+        rb_gc_mark(c->app);
+        rb_gc_mark(c->fmt_ops);
+        rb_gc_mark(c->logger);
+        rb_gc_mark(c->log_buf);
+        rb_gc_mark(c->env);
+        rb_gc_mark(c->cookies);
+        rb_gc_mark(c->response);
 }
 
 static VALUE clogger_alloc(VALUE klass)