From 4af553f1e7a3ba8d7b668abdcf47d4f117099a65 Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 23 Aug 2007 07:55:37 +0000 Subject: * cont.c (rb_cont_call, fiber_switch, rb_fiber_resume, rb_fiber_yield): suppress warnings. * cont.c (rb_fiber_start): change on non-volatile variable between setjmp and longjmp may not has an effect. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13237 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- cont.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'cont.c') diff --git a/cont.c b/cont.c index f0b21a8ec3..99fab9dade 100644 --- a/cont.c +++ b/cont.c @@ -465,7 +465,7 @@ rb_cont_call(int argc, VALUE *argv, VALUE contval) cont->value = make_passing_arg(argc, argv); - cont_restore_0(cont, (VALUE *)&cont); + cont_restore_0(cont, &contval); return Qnil; /* unreachable */ } @@ -555,9 +555,9 @@ rb_fiber_start(void) VALUE args; int state; + GetContPtr(th->fiber, cont); TH_PUSH_TAG(th); if ((state = EXEC_TAG()) == 0) { - GetContPtr(th->fiber, cont); GetProcPtr(cont->saved_thread.first_proc, proc); args = cont->value; cont->value = Qnil; @@ -651,7 +651,7 @@ fiber_switch(VALUE fib, int argc, VALUE *argv, int is_resume) cont->value = make_passing_arg(argc, argv); if ((value = cont_store(cont)) == Qundef) { - cont_restore_0(cont, (VALUE *)&cont); + cont_restore_0(cont, &value); rb_bug("rb_fiber_resume: unreachable"); } @@ -669,9 +669,7 @@ rb_fiber_transfer(VALUE fib, int argc, VALUE *argv) VALUE rb_fiber_resume(VALUE fib, int argc, VALUE *argv) { - int i; rb_context_t *cont; - VALUE curr = rb_fiber_current(); GetContPtr(fib, cont); if (cont->prev != Qnil) { @@ -684,7 +682,7 @@ rb_fiber_resume(VALUE fib, int argc, VALUE *argv) VALUE rb_fiber_yield(int argc, VALUE *argv) { - rb_fiber_transfer(return_fiber(), argc, argv); + return rb_fiber_transfer(return_fiber(), argc, argv); } VALUE -- cgit v1.2.3