From f2b951bc0d8e24f810fee924dea2c198da310e1e Mon Sep 17 00:00:00 2001 From: ocean Date: Tue, 19 Jul 2005 05:09:54 +0000 Subject: * ext/tcltklib/tcltklib.c: rbtk_eventloop_depth is used as int. * ext/tcltklib/tcltklib.c: rbtk_pending_exception is tested with NIL_P, so should assign Qnil instead of 0 (Qfalse). * ext/tcltklib/tcltklib.c (ip_invoke_real): fixed memory leak when ip is deleted. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8796 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/tcltklib/tcltklib.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'ext') diff --git a/ext/tcltklib/tcltklib.c b/ext/tcltklib/tcltklib.c index cccf924e5b..b088ef7cf7 100644 --- a/ext/tcltklib/tcltklib.c +++ b/ext/tcltklib/tcltklib.c @@ -4,7 +4,7 @@ * Oct. 24, 1997 Y. Matsumoto */ -#define TCLTKLIB_RELEASE_DATE "2005-07-13" +#define TCLTKLIB_RELEASE_DATE "2005-07-19" #include "ruby.h" #include "rubysig.h" @@ -550,7 +550,7 @@ rbtk_release_ip(ptr) /* treat excetiopn on Tcl side */ static VALUE rbtk_pending_exception; -static VALUE rbtk_eventloop_depth = 0; +static int rbtk_eventloop_depth = 0; static int @@ -1110,7 +1110,7 @@ lib_eventloop_core(check_root, update_flag, check_var) if (!NIL_P(rbtk_pending_exception)) { if (rbtk_eventloop_depth == 0) { VALUE exc = rbtk_pending_exception; - rbtk_pending_exception = 0; + rbtk_pending_exception = Qnil; rb_exc_raise(exc); } else { return 0; @@ -1226,7 +1226,7 @@ lib_eventloop_core(check_root, update_flag, check_var) if (!NIL_P(rbtk_pending_exception)) { if (rbtk_eventloop_depth == 0) { VALUE exc = rbtk_pending_exception; - rbtk_pending_exception = 0; + rbtk_pending_exception = Qnil; rb_exc_raise(exc); } else { return 0; @@ -1298,7 +1298,7 @@ lib_eventloop_core(check_root, update_flag, check_var) if (!NIL_P(rbtk_pending_exception)) { if (rbtk_eventloop_depth == 0) { VALUE exc = rbtk_pending_exception; - rbtk_pending_exception = 0; + rbtk_pending_exception = Qnil; rb_exc_raise(exc); } else { return 0; @@ -6846,9 +6846,6 @@ ip_invoke_real(argc, argv, interp) DUMP2("invoke_real called by thread:%lx", rb_thread_current()); - /* allocate memory for arguments */ - av = alloc_invoke_arguments(argc, argv); - /* get the data struct */ ptr = get_ip(interp); @@ -6858,6 +6855,9 @@ ip_invoke_real(argc, argv, interp) return rb_tainted_str_new2(""); } + /* allocate memory for arguments */ + av = alloc_invoke_arguments(argc, argv); + /* Invoke the C procedure */ Tcl_ResetResult(ptr->ip); v = ip_invoke_core(interp, argc, av); -- cgit v1.2.3