aboutsummaryrefslogtreecommitdiff
path: root/jim.c
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2011-05-26 08:07:28 +1000
committerSteve Bennett <steveb@workware.net.au>2011-05-26 08:07:28 +1000
commit4a62d315d05f6b020c9050be4b65b90864119d39 (patch)
treea9e6579f863964dd72882238b8d03450e667ab19 /jim.c
parentc701eb29022e71b6f3a12ae10fc96000547a0b8e (diff)
downloadjimtcl-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.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/jim.c b/jim.c
index d007e97..09396bd 100644
--- a/jim.c
+++ b/jim.c
@@ -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;