diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2006-07-10 01:17:30 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2006-07-10 01:17:30 (GMT) |
commit | 33f67300386b2d7ab267e3255c25a6816d5107a3 (patch) | |
tree | 1b7d7add83d7eda04eeea1bb13ae5e90fe157aad /generic/tclNamesp.c | |
parent | 5c5523ef366995f114b67deb5831d7740694273c (diff) | |
download | tcl-33f67300386b2d7ab267e3255c25a6816d5107a3.zip tcl-33f67300386b2d7ab267e3255c25a6816d5107a3.tar.gz tcl-33f67300386b2d7ab267e3255c25a6816d5107a3.tar.bz2 |
Dispatch is mostly working now; just got to get dispatch to "procedure-like"
methods done now; tricky, but a more scoped problem.
Diffstat (limited to 'generic/tclNamesp.c')
-rw-r--r-- | generic/tclNamesp.c | 56 |
1 files changed, 3 insertions, 53 deletions
diff --git a/generic/tclNamesp.c b/generic/tclNamesp.c index f9b9877..8736b49 100644 --- a/generic/tclNamesp.c +++ b/generic/tclNamesp.c @@ -22,7 +22,7 @@ * See the file "license.terms" for information on usage and redistribution * of this file, and for a DISCLAIMER OF ALL WARRANTIES. * - * RCS: @(#) $Id: tclNamesp.c,v 1.93.2.2 2006/04/23 23:08:08 dkf Exp $ + * RCS: @(#) $Id: tclNamesp.c,v 1.93.2.3 2006/07/10 01:17:32 dkf Exp $ */ #include "tclInt.h" @@ -117,19 +117,8 @@ typedef struct EnsembleConfig { * all lists, and cannot be found by scanning * the list from the namespace's ensemble * field. */ - int flags; /* ORed combo of ENS_DEAD and - * TCL_ENSEMBLE_PREFIX. */ - TclEnsembleCallbackProc enterProc; - /* Function to call immediately before - * dispatch of a particular ensemble command - * or its unknown callback, or NULL if no such - * callback is to be performed. */ - TclEnsembleCallbackProc leaveProc; - /* Function to call immediately after dispatch - * of a particular ensemble command or its - * unknown callback, or NULL if no such - * callback is to be performed. */ - ClientData clientData; /* Data for the above two callbacks. */ + int flags; /* ORed combo of TCL_ENSEMBLE_PREFIX and + * ENS_DEAD. */ /* OBJECT FIELDS FOR ENSEMBLE CONFIGURATION */ @@ -5483,9 +5472,6 @@ Tcl_CreateEnsemble( ensemblePtr->subcmdList = NULL; ensemblePtr->subcommandDict = NULL; ensemblePtr->flags = flags; - ensemblePtr->enterProc = NULL; - ensemblePtr->leaveProc = NULL; - ensemblePtr->clientData = NULL; ensemblePtr->unknownHandler = NULL; ensemblePtr->token = Tcl_CreateObjCommand(interp, name, NsEnsembleImplementationCmd, (ClientData)ensemblePtr, @@ -5954,26 +5940,6 @@ Tcl_GetEnsembleNamespace( return TCL_OK; } -void -TclEnsembleSetCallbacks( - Tcl_Command ensemble, - TclEnsembleCallbackProc enterProc, - TclEnsembleCallbackProc leaveProc, - ClientData clientData) -{ - Command *cmdPtr = (Command *) ensemble; - EnsembleConfig *ensemblePtr; - - if (cmdPtr->objProc != NsEnsembleImplementationCmd) { - Tcl_Panic("command is not an ensemble"); - } - - ensemblePtr = (EnsembleConfig *) cmdPtr->objClientData; - ensemblePtr->enterProc = enterProc; - ensemblePtr->leaveProc = leaveProc; - ensemblePtr->clientData = clientData; -} - /* *---------------------------------------------------------------------- * @@ -6250,12 +6216,7 @@ NsEnsembleImplementationCmd( { Interp *iPtr = (Interp *) interp; int isRootEnsemble = (iPtr->ensembleRewrite.sourceObjs == NULL); - TclEnsembleCallbackProc leaveProc = ensemblePtr->leaveProc; - ClientData cbClientData = ensemblePtr->clientData; - if (ensemblePtr->enterProc != NULL) { - ensemblePtr->enterProc(cbClientData); - } Tcl_ListObjGetElements(NULL, prefixObj, &prefixObjc, &prefixObjv); if (isRootEnsemble) { iPtr->ensembleRewrite.sourceObjs = objv; @@ -6282,9 +6243,6 @@ NsEnsembleImplementationCmd( iPtr->ensembleRewrite.numRemovedObjs = 0; iPtr->ensembleRewrite.numInsertedObjs = 0; } - if (leaveProc != NULL) { - leaveProc(cbClientData); - } return result; } @@ -6299,8 +6257,6 @@ NsEnsembleImplementationCmd( if (ensemblePtr->unknownHandler != NULL && reparseCount++ < 1) { int paramc, i; Tcl_Obj **paramv, *unknownCmd, *ensObj; - TclEnsembleCallbackProc leaveProc = ensemblePtr->leaveProc; - ClientData cbClientData = ensemblePtr->clientData; unknownCmd = Tcl_DuplicateObj(ensemblePtr->unknownHandler); TclNewObj(ensObj); @@ -6312,13 +6268,7 @@ NsEnsembleImplementationCmd( Tcl_ListObjGetElements(NULL, unknownCmd, ¶mc, ¶mv); Tcl_Preserve(ensemblePtr); Tcl_IncrRefCount(unknownCmd); - if (ensemblePtr->enterProc != NULL) { - ensemblePtr->enterProc(cbClientData); - } result = Tcl_EvalObjv(interp, paramc, paramv, 0); - if (leaveProc != NULL) { - leaveProc(cbClientData); - } if (result == TCL_OK) { prefixObj = Tcl_GetObjResult(interp); Tcl_IncrRefCount(prefixObj); |