summaryrefslogtreecommitdiff
path: root/ext/tk/tcltklib.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/tk/tcltklib.c')
-rw-r--r--ext/tk/tcltklib.c28
1 files changed, 26 insertions, 2 deletions
diff --git a/ext/tk/tcltklib.c b/ext/tk/tcltklib.c
index ff374b07d4..e713008c37 100644
--- a/ext/tk/tcltklib.c
+++ b/ext/tk/tcltklib.c
@@ -4353,8 +4353,15 @@ delete_slaves(ip)
slave = Tcl_GetSlave(ip, slave_name);
if (slave == (Tcl_Interp*)NULL) continue;
+<<<<<<< tcltklib.c
+ if (Tcl_Eval(ip, "info slaves") == TCL_ERROR) {
+ DUMP2("ip(%lx) can't get a list of slave IPs", ip);
+ return;
+ }
+=======
/* call ip_finalize */
ip_finalize(slave);
+>>>>>>> 1.3
Tcl_DeleteInterp(slave);
Tcl_Release(slave);
@@ -4486,6 +4493,12 @@ ip_replace_wait_commands(interp, mainWin)
(ClientData)mainWin, (Tcl_CmdDeleteProc *)NULL);
#endif
+<<<<<<< tcltklib.c
+ /* security check */
+ if (ruby_safe_level >= 4) {
+ rb_raise(rb_eSecurityError, "can't create a TclTkIp object at level %d", ruby_safe_level);
+ }
+=======
/* replace 'tkwait' command */
#if TCL_MAJOR_VERSION >= 8
DUMP1("Tcl_CreateObjCommand(\"tkwait\")");
@@ -4663,6 +4676,7 @@ ip_init(argc, argv, self)
"Cannot create a TclTkIp object at level %d",
ruby_safe_level);
}
+>>>>>>> 1.3
/* create object */
Data_Get_Struct(self, struct tcltkip, ptr);
@@ -4855,6 +4869,16 @@ ip_create_slave_core(interp, argc, argv)
thr_crit_bup = rb_thread_critical;
rb_thread_critical = Qtrue;
+<<<<<<< tcltklib.c
+ /* ip is deleted? */
+ if (Tcl_InterpDeleted(master->ip)) {
+ DUMP1("master-ip is deleted");
+ rb_thread_critical = thr_crit_bup;
+ rb_raise(rb_eRuntimeError, "deleted master can't create a new slave interpreter");
+ }
+
+=======
+>>>>>>> 1.3
/* create slave-ip */
slave->ref_count = 0;
slave->allow_ruby_exit = 0;
@@ -7889,7 +7913,7 @@ lib_split_tklist_core(ip_obj, list_str)
if (result == TCL_ERROR) {
Tcl_DecrRefCount(listobj);
if (interp == (Tcl_Interp*)NULL) {
- rb_raise(rb_eRuntimeError, "cannot get elements from list");
+ rb_raise(rb_eRuntimeError, "can't get elements from list");
} else {
#if TCL_MAJOR_VERSION >= 8
rb_raise(rb_eRuntimeError, "%s", Tcl_GetStringResult(interp));
@@ -7961,7 +7985,7 @@ lib_split_tklist_core(ip_obj, list_str)
if (Tcl_SplitList(interp, RSTRING(list_str)->ptr,
&argc, &argv) == TCL_ERROR) {
if (interp == (Tcl_Interp*)NULL) {
- rb_raise(rb_eRuntimeError, "cannot get elements from list");
+ rb_raise(rb_eRuntimeError, "can't get elements from list");
} else {
rb_raise(rb_eRuntimeError, "%s", interp->result);
}