[macruby-changes] [689] MacRuby/trunk
source_changes at macosforge.org
source_changes at macosforge.org
Thu Oct 30 18:11:23 PDT 2008
Revision: 689
http://trac.macosforge.org/projects/ruby/changeset/689
Author: lsansonetti at apple.com
Date: 2008-10-30 18:11:23 -0700 (Thu, 30 Oct 2008)
Log Message:
-----------
more missing wb, yeepee
Modified Paths:
--------------
MacRuby/trunk/error.c
MacRuby/trunk/eval.c
MacRuby/trunk/gc.c
MacRuby/trunk/load.c
MacRuby/trunk/proc.c
MacRuby/trunk/vm.c
MacRuby/trunk/vm_eval.c
MacRuby/trunk/vm_insnhelper.c
Modified: MacRuby/trunk/error.c
===================================================================
--- MacRuby/trunk/error.c 2008-10-31 00:28:11 UTC (rev 688)
+++ MacRuby/trunk/error.c 2008-10-31 01:11:23 UTC (rev 689)
@@ -1549,20 +1549,20 @@
if (th->parse_in_eval) {
if (!RTEST(err)) {
err = rb_exc_new2(rb_eSyntaxError, s);
- th->errinfo = err;
+ GC_WB(&th->errinfo, err);
}
else {
VALUE str = rb_obj_as_string(err);
rb_str_cat2(str, "\n");
rb_str_cat2(str, s);
- th->errinfo = rb_exc_new3(rb_eSyntaxError, str);
+ GC_WB(&th->errinfo, rb_exc_new3(rb_eSyntaxError, str));
}
}
else {
if (!RTEST(err)) {
err = rb_exc_new2(rb_eSyntaxError, "compile error");
- th->errinfo = err;
+ GC_WB(&th->errinfo, err);
}
rb_write_error(s);
rb_write_error("\n");
Modified: MacRuby/trunk/eval.c
===================================================================
--- MacRuby/trunk/eval.c 2008-10-31 00:28:11 UTC (rev 688)
+++ MacRuby/trunk/eval.c 2008-10-31 01:11:23 UTC (rev 689)
@@ -200,7 +200,7 @@
else if (ex == 0) {
ex = state;
}
- th->errinfo = errs[1];
+ GC_WB(&th->errinfo, errs[1]);
ex = error_handle(ex);
ruby_finalize_1();
POP_TAG();
@@ -392,7 +392,7 @@
int line = 0;
if (rb_thread_set_raised(th)) {
- th->errinfo = exception_error;
+ GC_WB(&th->errinfo, exception_error);
JUMP_TAG(TAG_FATAL);
}
@@ -412,7 +412,7 @@
}
}
if (!NIL_P(mesg)) {
- th->errinfo = mesg;
+ GC_WB(&th->errinfo, mesg);
}
if (RTEST(ruby_debug) && !NIL_P(e = th->errinfo) &&
@@ -435,7 +435,7 @@
}
POP_TAG();
if (status == TAG_FATAL && th->errinfo == exception_error) {
- th->errinfo = mesg;
+ GC_WB(&th->errinfo, mesg);
}
else if (status) {
rb_thread_reset_raised(th);
@@ -695,7 +695,7 @@
state = 0;
}
if (state == 0) {
- th->errinfo = e_info;
+ GC_WB(&th->errinfo, e_info);
}
}
}
@@ -1076,7 +1076,7 @@
if (!NIL_P(err) && !rb_obj_is_kind_of(err, rb_eException)) {
rb_raise(rb_eTypeError, "assigning non-exception to $!");
}
- GET_THREAD()->errinfo = err;
+ GC_WB(&GET_THREAD()->errinfo, err);
}
VALUE
Modified: MacRuby/trunk/gc.c
===================================================================
--- MacRuby/trunk/gc.c 2008-10-31 00:28:11 UTC (rev 688)
+++ MacRuby/trunk/gc.c 2008-10-31 01:11:23 UTC (rev 689)
@@ -430,9 +430,10 @@
static void
rb_objc_scan_external_callout(void *context, void (*scanner)(void *context, void *start, void *end))
{
+ /* XXX we should scan all threads */
rb_thread_t *th = GET_THREAD();
if (th->stack != NULL) {
- (*scanner)(context, th->stack, th->cfp->sp);
+ (*scanner)(context, th->stack, th->stack + th->stack_size);
}
}
Modified: MacRuby/trunk/load.c
===================================================================
--- MacRuby/trunk/load.c 2008-10-31 00:28:11 UTC (rev 688)
+++ MacRuby/trunk/load.c 2008-10-31 01:11:23 UTC (rev 689)
@@ -571,7 +571,7 @@
load_failed(fname);
}
- th->errinfo = errinfo;
+ GC_WB(&th->errinfo, errinfo);
return result;
}
Modified: MacRuby/trunk/proc.c
===================================================================
--- MacRuby/trunk/proc.c 2008-10-31 00:28:11 UTC (rev 688)
+++ MacRuby/trunk/proc.c 2008-10-31 01:11:23 UTC (rev 689)
@@ -90,8 +90,8 @@
GetProcPtr(procval, dst);
dst->block = src->block;
- dst->block.proc = procval;
- dst->envval = src->envval;
+ GC_WB(&dst->block.proc, procval);
+ GC_WB(&dst->envval, src->envval);
dst->safe_level = src->safe_level;
dst->is_lambda = src->is_lambda;
Modified: MacRuby/trunk/vm.c
===================================================================
--- MacRuby/trunk/vm.c 2008-10-31 00:28:11 UTC (rev 688)
+++ MacRuby/trunk/vm.c 2008-10-31 01:11:23 UTC (rev 689)
@@ -362,7 +362,8 @@
bcfp = RUBY_VM_GET_CFP_FROM_BLOCK_PTR(block);
bdfp = bcfp->dfp;
- block->proc = procval = vm_make_proc(th, bcfp, block);
+ procval = vm_make_proc(th, bcfp, block);
+ GC_WB(&block->proc, procval);
return procval;
}
@@ -391,13 +392,13 @@
}
procval = rb_proc_alloc(rb_cProc);
GetProcPtr(procval, proc);
- proc->blockprocval = blockprocval;
- proc->block.self = block->self;
- proc->block.lfp = block->lfp;
- proc->block.dfp = block->dfp;
- proc->block.iseq = block->iseq;
- proc->block.proc = procval;
- proc->envval = envval;
+ GC_WB(&proc->blockprocval, blockprocval);
+ GC_WB(&proc->block.self, block->self);
+ GC_WB(&proc->block.lfp, block->lfp);
+ GC_WB(&proc->block.dfp, block->dfp);
+ GC_WB(&proc->block.iseq, block->iseq);
+ GC_WB(&proc->block.proc, procval);
+ GC_WB(&proc->envval, envval);
proc->safe_level = th->safe_level;
if (VMDEBUG) {
@@ -835,7 +836,7 @@
VALUE *dfp = GC_GUARDED_PTR_REF(*cfp->dfp);
th->state = TAG_BREAK;
- th->errinfo = (VALUE)NEW_THROW_OBJECT(Qnil, (VALUE)dfp, TAG_BREAK);
+ GC_WB(&th->errinfo, (VALUE)NEW_THROW_OBJECT(Qnil, (VALUE)dfp, TAG_BREAK));
TH_JUMP_TAG(th, TAG_BREAK);
}
@@ -1208,7 +1209,7 @@
}
else {
vm_pop_frame(th);
- th->errinfo = err;
+ GC_WB(&th->errinfo, err);
TH_POP_TAG2();
JUMP_TAG(state);
}
Modified: MacRuby/trunk/vm_eval.c
===================================================================
--- MacRuby/trunk/vm_eval.c 2008-10-31 00:28:11 UTC (rev 688)
+++ MacRuby/trunk/vm_eval.c 2008-10-31 01:11:23 UTC (rev 689)
@@ -1192,7 +1192,7 @@
rb_raise(rb_eArgError, "uncaught throw %s", RSTRING_PTR(desc));
}
rb_trap_restore_mask();
- th->errinfo = NEW_THROW_OBJECT(tag, 0, TAG_THROW);
+ GC_WB(&th->errinfo, NEW_THROW_OBJECT(tag, 0, TAG_THROW));
JUMP_TAG(TAG_THROW);
#ifndef __GNUC__
Modified: MacRuby/trunk/vm_insnhelper.c
===================================================================
--- MacRuby/trunk/vm_insnhelper.c 2008-10-31 00:28:11 UTC (rev 688)
+++ MacRuby/trunk/vm_insnhelper.c 2008-10-31 01:11:23 UTC (rev 689)
@@ -56,7 +56,7 @@
cfp->bp = sp + 1;
cfp->iseq = (rb_iseq_t *) iseq;
cfp->flag = type;
- cfp->self = self;
+ GC_WB(&cfp->self, self);
cfp->lfp = lfp;
cfp->dfp = sp;
cfp->proc = 0;
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20081030/42d78fce/attachment-0001.html>
More information about the macruby-changes
mailing list