summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordkf <donal.k.fellows@manchester.ac.uk>2018-09-25 07:27:31 (GMT)
committerdkf <donal.k.fellows@manchester.ac.uk>2018-09-25 07:27:31 (GMT)
commit7b0e9cef6051f9c59269659da34e1744d074080e (patch)
treec3cc71860192def3105144f75bafd6315e472633
parent76e2e078e32be366597a31936f3661b3ab42d93e (diff)
downloadtcl-7b0e9cef6051f9c59269659da34e1744d074080e.zip
tcl-7b0e9cef6051f9c59269659da34e1744d074080e.tar.gz
tcl-7b0e9cef6051f9c59269659da34e1744d074080e.tar.bz2
More correct variable existence checks
-rw-r--r--generic/tclVar.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/generic/tclVar.c b/generic/tclVar.c
index 6bcd8d8..fbe43ac 100644
--- a/generic/tclVar.c
+++ b/generic/tclVar.c
@@ -6535,7 +6535,7 @@ ArrayDefaultCmd(
Tcl_WrongNumArgs(interp, 2, objv, "arrayName");
return TCL_ERROR;
}
- if (!varPtr || !isArray) {
+ if (!varPtr || TclIsVarUndefined(varPtr) || !isArray) {
return NotArrayError(interp, arrayNameObj);
}
@@ -6621,11 +6621,11 @@ ArrayDefaultCmd(
Tcl_WrongNumArgs(interp, 2, objv, "arrayName");
return TCL_ERROR;
}
- if (varPtr && !isArray) {
- return NotArrayError(interp, arrayNameObj);
- }
-
- if (varPtr) {
+
+ if (varPtr && !TclIsVarUndefined(varPtr)) {
+ if (!isArray) {
+ return NotArrayError(interp, arrayNameObj);
+ }
SetArrayDefault(varPtr, NULL);
}
return TCL_OK;