summaryrefslogtreecommitdiffstats
path: root/ext/tk/tcltklib.c
diff options
context:
space:
mode:
authorocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-07-19 05:12:52 +0000
committerocean <ocean@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-07-19 05:12:52 +0000
commitbb00aff318b67b3f5fafcc14badae2243781ee70 (patch)
treeab5434e3cb841624df33e4f2622df9d649b405ed /ext/tk/tcltklib.c
parent22f6bbbb15221b74474e43f4e1ceee5e7b069ac7 (diff)
downloadruby-bb00aff318b67b3f5fafcc14badae2243781ee70.tar.gz
ruby-bb00aff318b67b3f5fafcc14badae2243781ee70.tar.xz
ruby-bb00aff318b67b3f5fafcc14badae2243781ee70.zip
* ext/tk/tcltklib.c: rbtk_eventloop_depth is used as int.
* ext/tk/tcltklib.c: rbtk_pending_exception is tested with NIL_P, so should assign Qnil instead of 0 (Qfalse). * ext/tk/tcltklib.c (ip_invoke_real): fixed memory leak when ip is deleted. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@8797 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/tk/tcltklib.c')
-rw-r--r--ext/tk/tcltklib.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/ext/tk/tcltklib.c b/ext/tk/tcltklib.c
index cccf924e5..b088ef7cf 100644
--- a/ext/tk/tcltklib.c
+++ b/ext/tk/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);