diff options
| author | pooryorick <com.digitalsmarties@pooryorick.com> | 2021-05-18 10:58:18 (GMT) |
|---|---|---|
| committer | pooryorick <com.digitalsmarties@pooryorick.com> | 2021-05-18 10:58:18 (GMT) |
| commit | f14d3b58cf24bdf36bbbc577c89287a7ab8a89cf (patch) | |
| tree | a7824661ebf82b4c72edc0b2626d7beb3db382f4 /unix | |
| parent | 9649c9074c69b3e5ee7f6dadceb856fb824df315 (diff) | |
| parent | 0187ddfaf34b8ede9d2754ce18ad1a60110c4ef4 (diff) | |
| download | tcl-f14d3b58cf24bdf36bbbc577c89287a7ab8a89cf.zip tcl-f14d3b58cf24bdf36bbbc577c89287a7ab8a89cf.tar.gz tcl-f14d3b58cf24bdf36bbbc577c89287a7ab8a89cf.tar.bz2 | |
Fix [28027d8bb7745fb0], memory leaks in tclUnload.c .
Diffstat (limited to 'unix')
| -rw-r--r-- | unix/dltest/pkgua.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/unix/dltest/pkgua.c b/unix/dltest/pkgua.c index 0ab3e23..7082b36 100644 --- a/unix/dltest/pkgua.c +++ b/unix/dltest/pkgua.c @@ -21,6 +21,7 @@ static int PkguaEqObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); static int PkguaQuoteObjCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]); +static void CommandDeleted(ClientData clientData); /* * In the following hash table we are going to store a struct that holds all @@ -40,6 +41,13 @@ static int interpTokenMapInitialised = 0; static void +CommandDeleted(ClientData clientData) +{ + Tcl_Command *cmdToken = clientData; + *cmdToken = NULL; +} + +static void PkguaInitTokensHashTable(void) { if (interpTokenMapInitialised) { @@ -221,12 +229,14 @@ Pkgua_Init( Tcl_SetVar2(interp, "::pkgua_loaded", NULL, ".", TCL_APPEND_VALUE); cmdTokens = PkguaInterpToTokens(interp); - cmdTokens[cmdIndex++] = - Tcl_CreateObjCommand(interp, "pkgua_eq", PkguaEqObjCmd, NULL, - NULL); - cmdTokens[cmdIndex++] = + cmdTokens[cmdIndex] = + Tcl_CreateObjCommand(interp, "pkgua_eq", PkguaEqObjCmd, &cmdTokens[cmdIndex], + CommandDeleted); + cmdIndex++; + cmdTokens[cmdIndex] = Tcl_CreateObjCommand(interp, "pkgua_quote", PkguaQuoteObjCmd, - NULL, NULL); + &cmdTokens[cmdIndex], CommandDeleted); + cmdIndex++; return TCL_OK; } |
