diff options
author | Steve Bennett <steveb@workware.net.au> | 2011-05-26 08:07:28 +1000 |
---|---|---|
committer | Steve Bennett <steveb@workware.net.au> | 2011-05-26 08:07:28 +1000 |
commit | 4a62d315d05f6b020c9050be4b65b90864119d39 (patch) | |
tree | a9e6579f863964dd72882238b8d03450e667ab19 /jim.c | |
parent | c701eb29022e71b6f3a12ae10fc96000547a0b8e (diff) | |
download | jimtcl-4a62d315d05f6b020c9050be4b65b90864119d39.zip jimtcl-4a62d315d05f6b020c9050be4b65b90864119d39.tar.gz jimtcl-4a62d315d05f6b020c9050be4b65b90864119d39.tar.bz2 |
Fix crash with: global ::name
Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jim.c')
-rw-r--r-- | jim.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -3658,7 +3658,7 @@ int Jim_SetVariable(Jim_Interp *interp, Jim_Obj *nameObjPtr, Jim_Obj *valObjPtr) var->linkFramePtr = NULL; /* Insert the new variable */ if (name[0] == ':' && name[1] == ':') { - /* Into to the top evel frame */ + /* Into the top level frame */ framePtr = interp->topFramePtr; Jim_AddHashEntry(&framePtr->vars, name + 2, var); } @@ -3739,6 +3739,11 @@ int Jim_SetVariableLink(Jim_Interp *interp, Jim_Obj *nameObjPtr, varName = Jim_GetString(nameObjPtr, &len); + if (varName[0] == ':' && varName[1] == ':') { + /* Linking a global var does nothing */ + return JIM_OK; + } + if (JimNameIsDictSugar(varName, len)) { Jim_SetResultString(interp, "Dict key syntax invalid as link source", -1); return JIM_ERR; |