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

ruby-changes:4668

From: ko1@a...
Date: Wed, 23 Apr 2008 00:45:00 +0900 (JST)
Subject: [ruby-changes:4668] akr - Ruby:r16162 (ruby_1_8): * eval.c (error_print): show full stack grace except SystemStackError.

akr	2008-04-23 00:44:40 +0900 (Wed, 23 Apr 2008)

  New Revision: 16162

  Modified files:
    branches/ruby_1_8/ChangeLog
    branches/ruby_1_8/eval.c

  Log:
    * eval.c (error_print): show full stack grace except SystemStackError.
      backport from 1.9.  [ruby-dev:31014]


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/ChangeLog?r1=16162&r2=16161&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/branches/ruby_1_8/eval.c?r1=16162&r2=16161&diff_format=u

Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog	(revision 16161)
+++ ruby_1_8/ChangeLog	(revision 16162)
@@ -1,3 +1,8 @@
+Wed Apr 23 00:42:49 2008  Tanaka Akira  <akr@f...>
+
+	* eval.c (error_print): show full stack grace except SystemStackError.
+	  backport from 1.9.  [ruby-dev:31014]
+
 Wed Apr 23 00:18:45 2008  Kazuhiro NISHIYAMA  <zn@m...>
 
 	* test/ruby/test_symbol.rb (TestSymbol#test_to_proc): Improve
Index: ruby_1_8/eval.c
===================================================================
--- ruby_1_8/eval.c	(revision 16161)
+++ ruby_1_8/eval.c	(revision 16162)
@@ -1307,6 +1307,7 @@
     if (!NIL_P(errat)) {
 	long i;
 	struct RArray *ep = RARRAY(errat);
+        int truncate = eclass == rb_eSysStackError;
 
 #define TRACE_MAX (TRACE_HEAD+TRACE_TAIL+5)
 #define TRACE_HEAD 8
@@ -1317,7 +1318,7 @@
 	    if (TYPE(ep->ptr[i]) == T_STRING) {
 		warn_printf("\tfrom %s\n", RSTRING(ep->ptr[i])->ptr);
 	    }
-	    if (i == TRACE_HEAD && ep->len > TRACE_MAX) {
+	    if (truncate && i == TRACE_HEAD && ep->len > TRACE_MAX) {
 		warn_printf("\t ... %ld levels...\n",
 			ep->len - TRACE_HEAD - TRACE_TAIL);
 		i = ep->len - TRACE_TAIL;

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

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