From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-1.9 required=3.0 tests=AWL,BAYES_00, MSGID_FROM_MTA_HEADER shortcircuit=no autolearn=unavailable version=3.3.2 Path: news.gmane.org!not-for-mail From: Eric Wong Newsgroups: gmane.comp.lang.ruby.clogger.general Subject: [PATCH 3/6] use RB_GC_GUARD instead of volatile Date: Sat, 15 Feb 2014 23:09:05 +0000 Message-ID: <1392505748-13740-3-git-send-email-normalperson@yhbt.net> References: <1392505748-13740-1-git-send-email-normalperson@yhbt.net> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1392505761 7006 80.91.229.3 (15 Feb 2014 23:09:21 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 15 Feb 2014 23:09:21 +0000 (UTC) To: clogger@librelist.org Original-X-From: clogger@librelist.org Sun Feb 16 00:09:29 2014 Return-path: Envelope-to: gcrcg-clogger@m.gmane.org List-Archive: List-Help: List-Id: List-Post: List-Subscribe: List-Unsubscribe: Precedence: list Original-Sender: clogger@librelist.org Xref: news.gmane.org gmane.comp.lang.ruby.clogger.general:64 Archived-At: Received: from zedshaw2.xen.prgmr.com ([71.19.156.177]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1WEoMS-0000xP-QZ for gcrcg-clogger@m.gmane.org; Sun, 16 Feb 2014 00:09:29 +0100 Received: from zedshaw2.xen.prgmr.com (unknown [IPv6:::1]) by zedshaw2.xen.prgmr.com (Postfix) with ESMTP id 2B82D75019 for ; Sat, 15 Feb 2014 23:18:32 +0000 (UTC) RB_GC_GUARD is more explicit in intent. --- ext/clogger_ext/clogger.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ext/clogger_ext/clogger.c b/ext/clogger_ext/clogger.c index 8995932..ed01534 100644 --- a/ext/clogger_ext/clogger.c +++ b/ext/clogger_ext/clogger.c @@ -170,7 +170,7 @@ static VALUE byte_xs_str(VALUE from) { static const char esc[] = "0123456789ABCDEF"; unsigned char *new_ptr; - unsigned char *ptr = (unsigned char *)RSTRING_PTR(from); + const unsigned char *ptr = (const unsigned char *)RSTRING_PTR(from); long len = RSTRING_LEN(from); long new_len = len; VALUE rv; @@ -188,7 +188,7 @@ static VALUE byte_xs_str(VALUE from) rv = rb_str_new(NULL, new_len); new_ptr = (unsigned char *)RSTRING_PTR(rv); - ptr = (unsigned char *)RSTRING_PTR(from); + ptr = (const unsigned char *)RSTRING_PTR(from); for (; --len >= 0; ptr++) { unsigned c = *ptr; @@ -867,7 +867,7 @@ static VALUE ccall(struct clogger *c, VALUE env) rb_ary_store(rv, 1, c->headers); } } else { - volatile VALUE tmp = rb_inspect(rv); + VALUE tmp = rb_inspect(rv); c->status = INT2FIX(500); c->headers = c->body = rb_ary_new(); @@ -875,6 +875,7 @@ static VALUE ccall(struct clogger *c, VALUE env) rb_raise(rb_eTypeError, "app response not a 3 element Array: %s", RSTRING_PTR(tmp)); + RB_GC_GUARD(tmp); } return rv; -- 1.9.0.rc3.13.gda73b5f