[macruby-changes] [683] MacRuby/trunk

source_changes at macosforge.org source_changes at macosforge.org
Wed Oct 29 19:05:20 PDT 2008


Revision: 683
          http://trac.macosforge.org/projects/ruby/changeset/683
Author:   lsansonetti at apple.com
Date:     2008-10-29 19:05:20 -0700 (Wed, 29 Oct 2008)
Log Message:
-----------
guess what, more missing wbs

Modified Paths:
--------------
    MacRuby/trunk/iseq.c
    MacRuby/trunk/regparse.c

Modified: MacRuby/trunk/iseq.c
===================================================================
--- MacRuby/trunk/iseq.c	2008-10-30 00:27:03 UTC (rev 682)
+++ MacRuby/trunk/iseq.c	2008-10-30 02:05:20 UTC (rev 683)
@@ -133,18 +133,18 @@
 
     if (type == ISEQ_TYPE_TOP ||
 	type == ISEQ_TYPE_METHOD || type == ISEQ_TYPE_CLASS) {
-	iseq->local_iseq = iseq;
+	GC_WB(&iseq->local_iseq, iseq);
     }
     else if (RTEST(parent)) {
 	rb_iseq_t *piseq;
 	GetISeqPtr(parent, piseq);
-	iseq->local_iseq = piseq->local_iseq;
+	GC_WB(&iseq->local_iseq, piseq->local_iseq);
     }
 
     if (RTEST(parent)) {
 	rb_iseq_t *piseq;
 	GetISeqPtr(parent, piseq);
-	iseq->parent_iseq = piseq;
+	GC_WB(&iseq->parent_iseq, piseq);
     }
 }
 
@@ -311,7 +311,7 @@
     VALUE self = iseq_alloc(rb_cISeq);
 
     GetISeqPtr(self, iseq);
-    iseq->self = self;
+    GC_WB(&iseq->self, self);
 
     prepare_iseq_build(iseq, name, filename, parent, type, bopt, option);
     iseq_compile(self, node);
@@ -386,7 +386,7 @@
     body        = CHECK_ARRAY(rb_ary_entry(data, i++));
 
     GetISeqPtr(iseqval, iseq);
-    iseq->self = iseqval;
+    GC_WB(&iseq->self, iseqval);
 
     if (type_map == 0) {
 	type_map = st_init_numtable();
@@ -1266,7 +1266,7 @@
 #if !WITH_OBJC
     iseq->mark_ary = rb_ary_new();
 #endif
-    iseq->self = iseqval;
+    GC_WB(&iseq->self, iseqval);
 
     GC_WB(&iseq->iseq, ALLOC_N(VALUE, iseq->iseq_size));
 

Modified: MacRuby/trunk/regparse.c
===================================================================
--- MacRuby/trunk/regparse.c	2008-10-30 00:27:03 UTC (rev 682)
+++ MacRuby/trunk/regparse.c	2008-10-30 02:05:20 UTC (rev 683)
@@ -1019,7 +1019,11 @@
 
         THREAD_ATOMIC_START;
 	GC_WB(&n->next, FreeNodeList);
+	if (FreeNodeList != NULL) {
+	    rb_objc_release(FreeNodeList);
+	}
 	FreeNodeList = n;
+	rb_objc_retain(FreeNodeList);
         THREAD_ATOMIC_END;
       }
 #else
@@ -1067,7 +1071,11 @@
 
     THREAD_ATOMIC_START;
     GC_WB(&n->next, FreeNodeList);
+    if (FreeNodeList != NULL) {
+	rb_objc_release(FreeNodeList);
+    }
     FreeNodeList = n;
+    rb_objc_retain(FreeNodeList);
     THREAD_ATOMIC_END;
   }
 #else
@@ -1084,7 +1092,11 @@
   /* THREAD_ATOMIC_START; */
   while (IS_NOT_NULL(FreeNodeList)) {
     n = FreeNodeList;
+    if (FreeNodeList != NULL) {
+	rb_objc_release(FreeNodeList);
+    }
     FreeNodeList = FreeNodeList->next;
+    rb_objc_retain(FreeNodeList);
     xfree(n);
   }
   /* THREAD_ATOMIC_END; */
@@ -1094,7 +1106,6 @@
 void 
 onig_setup_node_list(void) 
 {
-    GC_ROOT(&FreeNodeList);
 }
 # endif
 #endif
@@ -1108,7 +1119,11 @@
   THREAD_ATOMIC_START;
   if (IS_NOT_NULL(FreeNodeList)) {
     node = (Node* )FreeNodeList;
+    if (FreeNodeList != NULL) {
+	rb_objc_release(FreeNodeList);
+    }
     FreeNodeList = FreeNodeList->next;
+    rb_objc_retain(FreeNodeList);
     THREAD_ATOMIC_END;
     return node;
   }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20081029/2069bc76/attachment-0001.html>


More information about the macruby-changes mailing list