[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