diff options
author | dkf <donal.k.fellows@manchester.ac.uk> | 2012-12-17 14:40:17 (GMT) |
---|---|---|
committer | dkf <donal.k.fellows@manchester.ac.uk> | 2012-12-17 14:40:17 (GMT) |
commit | f676347d4bf615c3cbf2bf40e3bd472a854f7944 (patch) | |
tree | 7cf5d886f5ef425a0674810b249e24add7edc174 /generic | |
parent | 4eaff43e124f523dca05591bc760fa9f32eb7672 (diff) | |
parent | 97482cca000b9f31593285d349c05793f79f9863 (diff) | |
download | tcl-f676347d4bf615c3cbf2bf40e3bd472a854f7944.zip tcl-f676347d4bf615c3cbf2bf40e3bd472a854f7944.tar.gz tcl-f676347d4bf615c3cbf2bf40e3bd472a854f7944.tar.bz2 |
Simpler code to do installation of [info class] and [info object].
We know this is a safe thing to do as we know this is inside Tcl_CreateInterp()
and so no confounding code could have been run.
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclOOInfo.c | 26 |
1 files changed, 7 insertions, 19 deletions
diff --git a/generic/tclOOInfo.c b/generic/tclOOInfo.c index e09ee4e..5be9b01 100644 --- a/generic/tclOOInfo.c +++ b/generic/tclOOInfo.c @@ -100,6 +100,7 @@ TclOOInitInfo( Tcl_Interp *interp) { Tcl_Command infoCmd; + Tcl_Obj *mapDict; /* * Build the ensembles used to implement [info object] and [info class]. @@ -113,25 +114,12 @@ TclOOInitInfo( */ infoCmd = Tcl_FindCommand(interp, "info", NULL, TCL_GLOBAL_ONLY); - if (infoCmd != NULL && Tcl_IsEnsemble(infoCmd)) { - Tcl_Obj *mapDict, *objectObj, *classObj; - - Tcl_GetEnsembleMappingDict(NULL, infoCmd, &mapDict); - if (mapDict != NULL) { - objectObj = Tcl_NewStringObj("object", -1); - classObj = Tcl_NewStringObj("class", -1); - - Tcl_IncrRefCount(objectObj); - Tcl_IncrRefCount(classObj); - Tcl_DictObjPut(NULL, mapDict, objectObj, - Tcl_NewStringObj("::oo::InfoObject", -1)); - Tcl_DictObjPut(NULL, mapDict, classObj, - Tcl_NewStringObj("::oo::InfoClass", -1)); - Tcl_DecrRefCount(objectObj); - Tcl_DecrRefCount(classObj); - Tcl_SetEnsembleMappingDict(interp, infoCmd, mapDict); - } - } + Tcl_GetEnsembleMappingDict(NULL, infoCmd, &mapDict); + Tcl_DictObjPut(NULL, mapDict, Tcl_NewStringObj("object", -1), + Tcl_NewStringObj("::oo::InfoObject", -1)); + Tcl_DictObjPut(NULL, mapDict, Tcl_NewStringObj("class", -1), + Tcl_NewStringObj("::oo::InfoClass", -1)); + Tcl_SetEnsembleMappingDict(interp, infoCmd, mapDict); } /* |