aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2025-03-11 22:17:53 +1000
committerSteve Bennett <steveb@workware.net.au>2025-03-12 17:20:02 +1000
commite90d7c42d512c37c48d82272db069c76ad42a2c7 (patch)
treef901f16a9d4b9e1fc550714c67bdddf926673aa1
parent2080ce323acd95b67218fc2c88e0d3fa8d28cc14 (diff)
downloadjimtcl-e90d7c42d512c37c48d82272db069c76ad42a2c7.zip
jimtcl-e90d7c42d512c37c48d82272db069c76ad42a2c7.tar.gz
jimtcl-e90d7c42d512c37c48d82272db069c76ad42a2c7.tar.bz2
dict set/unset: ensure dicts modified via dict sugar are unshared
Fixes #338
-rw-r--r--jim.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/jim.c b/jim.c
index 2d714cf..f7f2656 100644
--- a/jim.c
+++ b/jim.c
@@ -15530,7 +15530,7 @@ static int Jim_DictCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *arg
}
case OPT_SET:
- return Jim_SetDictKeysVector(interp, argv[2], argv + 3, argc - 4, argv[argc - 1], JIM_ERRMSG);
+ return Jim_SetDictKeysVector(interp, argv[2], argv + 3, argc - 4, argv[argc - 1], JIM_ERRMSG | JIM_UNSHARED);
case OPT_EXISTS:{
int rc = Jim_DictKeysVector(interp, argv[2], argv + 3, argc - 3, &objPtr, JIM_NONE);
@@ -15542,7 +15542,7 @@ static int Jim_DictCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *arg
}
case OPT_UNSET:
- if (Jim_SetDictKeysVector(interp, argv[2], argv + 3, argc - 3, NULL, JIM_NONE) != JIM_OK) {
+ if (Jim_SetDictKeysVector(interp, argv[2], argv + 3, argc - 3, NULL, JIM_UNSHARED) != JIM_OK) {
return JIM_ERR;
}
return JIM_OK;