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 | fa7a06447d7d82c0d622fa7b8984f5b2f9a98de3 (patch) | |
tree | 7cf5d886f5ef425a0674810b249e24add7edc174 | |
parent | 8890130ab8712a4f466800f5680b617525d9feba (diff) | |
parent | b13b1c602065dce05521c69866b973df90affb6b (diff) | |
download | tcl-fa7a06447d7d82c0d622fa7b8984f5b2f9a98de3.zip tcl-fa7a06447d7d82c0d622fa7b8984f5b2f9a98de3.tar.gz tcl-fa7a06447d7d82c0d622fa7b8984f5b2f9a98de3.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.
-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); } /* |