Attachment "2440625.patch" to
ticket [2440625fff]
added by
kennykb
2008-12-17 23:49:30.
? darius
Index: generic/tclBasic.c
===================================================================
RCS file: /cvsroot/tcl/tcl/generic/tclBasic.c,v
retrieving revision 1.377
diff -u -b -u -r1.377 tclBasic.c
--- generic/tclBasic.c 12 Dec 2008 16:18:09 -0000 1.377
+++ generic/tclBasic.c 17 Dec 2008 16:47:48 -0000
@@ -4042,8 +4042,6 @@
Interp *iPtr = (Interp *) interp;
int result;
Namespace *lookupNsPtr = iPtr->lookupNsPtr;
- Tcl_ObjCmdProc *objProc;
- ClientData objClientData;
Command **cmdPtrPtr;
iPtr->lookupNsPtr = NULL;
@@ -4172,19 +4170,8 @@
*cmdPtrPtr = cmdPtr;
cmdPtr->refCount++;
- /*
- * Find the objProc to call: nreProc if available, objProc otherwise. Push
- * a callback to do the actual running.
- */
-
- objProc = cmdPtr->nreProc;
- if (!objProc) {
- objProc = cmdPtr->objProc;
- }
- objClientData = cmdPtr->objClientData;
-
- TclNRAddCallback(interp, NRRunObjProc, objProc, objClientData,
- INT2PTR(objc), (ClientData) objv);
+ TclNRAddCallback(interp, NRRunObjProc, cmdPtr,
+ INT2PTR(objc), (ClientData) objv, NULL);
return TCL_OK;
}
@@ -4294,14 +4281,28 @@
{
/* OPT: do not call? */
- Tcl_ObjCmdProc *objProc = data[0];
- ClientData objClientData = data[1];
- int objc = PTR2INT(data[2]);
- Tcl_Obj **objv = data[3];
+ Command* cmdPtr = data[0];
+ Tcl_ObjCmdProc *objProc;
+ ClientData objClientData;
+ int objc = PTR2INT(data[1]);
+ Tcl_Obj **objv = data[2];
+
+
+ /*
+ * Find the objProc to call: nreProc if available, objProc otherwise. Push
+ * a callback to do the actual running.
+ */
+
+ objProc = cmdPtr->nreProc;
+ if (!objProc) {
+ objProc = cmdPtr->objProc;
+ }
+ objClientData = cmdPtr->objClientData;
if (result == TCL_OK) {
return objProc(objClientData, interp, objc, objv);
}
+
return result;
}