summaryrefslogtreecommitdiff
path: root/ext/tcltklib
diff options
context:
space:
mode:
authornagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-09-29 15:54:32 +0000
committernagai <nagai@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-09-29 15:54:32 +0000
commit83185f9ff097beb2946a5abf41c2b180db152f17 (patch)
tree03f94411c11d556ddf463d4b4cb27a16fcbba3a1 /ext/tcltklib
parent30116ff8c286c91090722f4d6aada2cc47fcae7e (diff)
* ext/tcltklib/tcltklib.c (ip_init): bug fix
* ext/tk/tkutil.c (get_eval_string_core): accept a Regexp object * ext/tk/lib/multi-tk.rb: fix bug on 'exit' operation * ext/tk/lib/tk/text.rb: 'tksearch' accepts a Regexp object as a matting pattern argument git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/tcltklib')
-rw-r--r--ext/tcltklib/tcltklib.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/ext/tcltklib/tcltklib.c b/ext/tcltklib/tcltklib.c
index f1a81c9964..8b180bf493 100644
--- a/ext/tcltklib/tcltklib.c
+++ b/ext/tcltklib/tcltklib.c
@@ -3271,6 +3271,8 @@ delete_slaves(ip)
char *slave_name;
int i, len;
+ DUMP2("delete slaves of ip(%lx)", ip);
+
Tcl_Preserve(ip);
if (Tcl_Eval(ip, "info slaves") == TCL_ERROR) {
@@ -3339,7 +3341,10 @@ ip_free(ptr)
thr_crit_bup = rb_thread_critical;
rb_thread_critical = Qtrue;
+ DUMP2("IP ref_count = %d", ptr->ref_count);
+
if (!Tcl_InterpDeleted(ptr->ip)) {
+ DUMP2("IP(%lx) is not deleted", ptr->ip);
/* Tcl_Preserve(ptr->ip); */
rbtk_preserve_ip(ptr);
@@ -3369,6 +3374,7 @@ ip_free(ptr)
}
rbtk_release_ip(ptr);
+ DUMP2("IP ref_count = %d", ptr->ref_count);
free(ptr);
@@ -3418,7 +3424,8 @@ ip_init(argc, argv, self)
rb_raise(rb_eRuntimeError, "fail to create a new Tk interpreter");
}
- rbtk_preserve_ip((ClientData)ptr->ip);
+ rbtk_preserve_ip(ptr);
+ DUMP2("IP ref_count = %d", ptr->ref_count);
current_interp = ptr->ip;
ptr->has_orig_exit