From e4bdbdcfcbf51ee91e4192ef361ba73e80e14dcc Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 29 Aug 2009 16:08:55 -0700 Subject: ext: explicitly gc_mark each struct element 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. --- ext/clogger_ext/clogger.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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) -- cgit v1.2.3-24-ge0c7