diff options
| author | dkf <donal.k.fellows@manchester.ac.uk> | 2018-09-25 07:27:31 (GMT) |
|---|---|---|
| committer | dkf <donal.k.fellows@manchester.ac.uk> | 2018-09-25 07:27:31 (GMT) |
| commit | 7b0e9cef6051f9c59269659da34e1744d074080e (patch) | |
| tree | c3cc71860192def3105144f75bafd6315e472633 | |
| parent | 76e2e078e32be366597a31936f3661b3ab42d93e (diff) | |
| download | tcl-7b0e9cef6051f9c59269659da34e1744d074080e.zip tcl-7b0e9cef6051f9c59269659da34e1744d074080e.tar.gz tcl-7b0e9cef6051f9c59269659da34e1744d074080e.tar.bz2 | |
More correct variable existence checks
| -rw-r--r-- | generic/tclVar.c | 12 |
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; |
