Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Remove complications that no longer server any required purpose. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: | 0390ff3464692420931df377760ea07511f05f4b |
User & Date: | dgp 2013-08-23 05:59:48 |
Context
2013-08-23
| ||
13:08 | fix NRE docs check-in: 2f58df3b39 user: mig tags: trunk | |
12:04 | merge trunk check-in: 81e2e8668b user: dgp tags: bug-2502002 | |
12:03 | merge trunk check-in: fd1683f37a user: dgp tags: dgp-refactor | |
05:59 | Remove complications that no longer server any required purpose. check-in: 0390ff3464 user: dgp tags: trunk | |
2013-08-22
| ||
20:34 | compiler warning check-in: edc3131309 user: dgp tags: trunk | |
Changes
Changes to generic/tclBasic.c.
4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 4106 .... 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 .... 4192 4193 4194 4195 4196 4197 4198 4199 4200 4201 4202 4203 4204 4205 4206 4207 4208 4209 4210 4211 4212 4213 .... 4293 4294 4295 4296 4297 4298 4299 4300 4301 4302 4303 4304 4305 4306 4307 4308 4309 4310 4311 4312 4313 |
Command *cmdPtr) /* NULL if the Command is to be looked up * here, otherwise the pointer to the * requested Command struct to be invoked. */ { Interp *iPtr = (Interp *) interp; int result; Namespace *lookupNsPtr = iPtr->lookupNsPtr; Command **cmdPtrPtr; NRE_callback *callbackPtr; iPtr->lookupNsPtr = NULL; /* * Push a callback with cleanup tasks for commands; the cmdPtr at data[0] * will be filled later when the command is found: save its address at * objProcPtr. ................................................................................ * * data[1] stores a marker for use by tailcalls; it will be set to 1 by * command redirectors (imports, alias, ensembles) so that tailcalls * finishes the source command and not just the target. */ if (iPtr->deferredCallbacks) { callbackPtr = iPtr->deferredCallbacks; iPtr->deferredCallbacks = NULL; } else { TclNRAddCallback(interp, NRCommand, NULL, NULL, NULL, NULL); callbackPtr = TOP_CB(interp); } cmdPtrPtr = (Command **) &(callbackPtr->data[0]); iPtr->numLevels++; result = TclInterpReady(interp); if ((result != TCL_OK) || (objc == 0)) { return result; } ................................................................................ return result; } if (!cmdPtr) { return TEOV_NotFound(interp, objc, objv, lookupNsPtr); } } /* * Fix the original callback to point to the now known cmdPtr. Insure that * the Command struct lives until the command returns. */ *cmdPtrPtr = cmdPtr; cmdPtr->refCount++; TclNRAddCallback(interp, Dispatch, cmdPtr->nreProc ? cmdPtr->nreProc : cmdPtr->objProc, cmdPtr->objClientData, INT2PTR(objc), objv); return TCL_OK; } static int ................................................................................ static int NRCommand( ClientData data[], Tcl_Interp *interp, int result) { Interp *iPtr = (Interp *) interp; Command *cmdPtr = data[0]; /* int cmdStart = PTR2INT(data[1]); NOT USED HERE */ if (cmdPtr) { TclCleanupCommandMacro(cmdPtr); } ((Interp *)interp)->numLevels--; /* * If there is a tailcall, schedule it */ if (data[1] && (data[1] != INT2PTR(1))) { TclNRAddCallback(interp, TclNRTailcallEval, data[1], NULL, NULL, NULL); |
< < < < < < < < < < < < < < < < < < | |
4091 4092 4093 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 .... 4105 4106 4107 4108 4109 4110 4111 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 .... 4187 4188 4189 4190 4191 4192 4193 4194 4195 4196 4197 4198 4199 4200 .... 4280 4281 4282 4283 4284 4285 4286 4287 4288 4289 4290 4291 4292 4293 4294 4295 |
Command *cmdPtr) /* NULL if the Command is to be looked up * here, otherwise the pointer to the * requested Command struct to be invoked. */ { Interp *iPtr = (Interp *) interp; int result; Namespace *lookupNsPtr = iPtr->lookupNsPtr; iPtr->lookupNsPtr = NULL; /* * Push a callback with cleanup tasks for commands; the cmdPtr at data[0] * will be filled later when the command is found: save its address at * objProcPtr. ................................................................................ * * data[1] stores a marker for use by tailcalls; it will be set to 1 by * command redirectors (imports, alias, ensembles) so that tailcalls * finishes the source command and not just the target. */ if (iPtr->deferredCallbacks) { iPtr->deferredCallbacks = NULL; } else { TclNRAddCallback(interp, NRCommand, NULL, NULL, NULL, NULL); } iPtr->numLevels++; result = TclInterpReady(interp); if ((result != TCL_OK) || (objc == 0)) { return result; } ................................................................................ return result; } if (!cmdPtr) { return TEOV_NotFound(interp, objc, objv, lookupNsPtr); } } TclNRAddCallback(interp, Dispatch, cmdPtr->nreProc ? cmdPtr->nreProc : cmdPtr->objProc, cmdPtr->objClientData, INT2PTR(objc), objv); return TCL_OK; } static int ................................................................................ static int NRCommand( ClientData data[], Tcl_Interp *interp, int result) { Interp *iPtr = (Interp *) interp; iPtr->numLevels--; /* * If there is a tailcall, schedule it */ if (data[1] && (data[1] != INT2PTR(1))) { TclNRAddCallback(interp, TclNRTailcallEval, data[1], NULL, NULL, NULL); |