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

ruby-changes:8844

From: matz <ko1@a...>
Date: Thu, 27 Nov 2008 23:56:03 +0900 (JST)
Subject: [ruby-changes:8844] Ruby:r20380 (trunk): * gc.c (gc_mark): still needs to check stack depth during GC.

matz	2008-11-27 23:55:45 +0900 (Thu, 27 Nov 2008)

  New Revision: 20380

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

  Log:
    * gc.c (gc_mark): still needs to check stack depth during GC.
    * gc.c (stack_check): ditto.

  Modified files:
    trunk/ChangeLog
    trunk/gc.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 20379)
+++ ChangeLog	(revision 20380)
@@ -1,3 +1,9 @@
+Thu Nov 27 23:54:37 2008  Yukihiro Matsumoto  <matz@r...>
+
+	* gc.c (gc_mark): still needs to check stack depth during GC.
+
+	* gc.c (stack_check): ditto.
+
 Thu Nov 27 21:41:29 2008  Tadayoshi Funaba  <tadf@d...>
 
 	* strftime.c (rb_strftime): should add padding for %%.
Index: gc.c
===================================================================
--- gc.c	(revision 20379)
+++ gc.c	(revision 20380)
@@ -1047,12 +1047,9 @@
     return STACK_LENGTH;
 }
 
-int
-ruby_stack_check(void)
+static int
+stack_check(void)
 {
-#if defined(POSIX_SIGNAL) && defined(SIGSEGV) && defined(HAVE_SIGALTSTACK)
-    return 0;
-#else
     int ret;
     rb_thread_t *th = GET_THREAD();
     SET_STACK_END;
@@ -1064,6 +1061,15 @@
     }
 #endif
     return ret;
+}
+
+int
+ruby_stack_check(void)
+{
+#if defined(POSIX_SIGNAL) && defined(SIGSEGV) && defined(HAVE_SIGALTSTACK)
+    return 0;
+#else
+    return stack_check();
 #endif
 }
 
@@ -1273,7 +1279,7 @@
     if (obj->as.basic.flags & FL_MARK) return;  /* already marked */
     obj->as.basic.flags |= FL_MARK;
 
-    if (lev > GC_LEVEL_MAX || (lev == 0 && ruby_stack_check())) {
+    if (lev > GC_LEVEL_MAX || (lev == 0 && stack_check())) {
 	if (!mark_stack_overflow) {
 	    if (mark_stack_ptr - mark_stack < MARK_STACK_MAX) {
 		*mark_stack_ptr = ptr;

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

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