[前][次][番号順一覧][スレッド一覧]

ruby-changes:11951

From: nobu <ko1@a...>
Date: Mon, 1 Jun 2009 10:41:58 +0900 (JST)
Subject: [ruby-changes:11951] Ruby:r23615 (trunk): * include/ruby/intern.h (rb_exc_new2): optimization for literal.

nobu	2009-06-01 10:41:43 +0900 (Mon, 01 Jun 2009)

  New Revision: 23615

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=23615

  Log:
    * include/ruby/intern.h (rb_exc_new2): optimization for literal.

  Modified files:
    trunk/ChangeLog
    trunk/error.c
    trunk/include/ruby/intern.h

Index: include/ruby/intern.h
===================================================================
--- include/ruby/intern.h	(revision 23614)
+++ include/ruby/intern.h	(revision 23615)
@@ -693,6 +693,12 @@
 	rb_str_cat(str, ptr, strlen(ptr)) :	\
 	rb_str_cat2(str, ptr);			\
 })
+#define rb_exc_new2(klass, ptr) __extension__ ( \
+{						\
+    (__builtin_constant_p(ptr)) ?	        \
+	rb_exc_new(klass, ptr, strlen(ptr)) :	\
+	rb_exc_new2(klass, ptr);		\
+})
 #endif
 #define rb_str_new2 rb_str_new_cstr
 #define rb_str_new3 rb_str_new_shared
Index: ChangeLog
===================================================================
--- ChangeLog	(revision 23614)
+++ ChangeLog	(revision 23615)
@@ -1,3 +1,7 @@
+Mon Jun  1 10:41:41 2009  Nobuyoshi Nakada  <nobu@r...>
+
+	* include/ruby/intern.h (rb_exc_new2): optimization for literal.
+
 Mon Jun  1 07:20:02 2009  Yukihiro Matsumoto  <matz@r...>
 
 	* ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): returns Inf if
Index: error.c
===================================================================
--- error.c	(revision 23614)
+++ error.c	(revision 23615)
@@ -348,6 +348,8 @@
 VALUE rb_mErrno;
 static VALUE rb_eNOERROR;
 
+#undef rb_exc_new2
+
 VALUE
 rb_exc_new(VALUE etype, const char *ptr, long len)
 {

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]