diff options
author | dgp <dgp@users.sourceforge.net> | 2011-04-21 13:47:48 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2011-04-21 13:47:48 (GMT) |
commit | 6998aa298515d30c3b2e0cee78e2af476fd2ed91 (patch) | |
tree | 6159f577b200fa32f4575a1ead43307fa7ff8f7f /generic/tclListObj.c | |
parent | 4779fe18796c2f1adad2712560bc0cfe35e844be (diff) | |
parent | 7814414e5c501546b9abc27e7d5016acb7a9ff03 (diff) | |
download | tcl-6998aa298515d30c3b2e0cee78e2af476fd2ed91.zip tcl-6998aa298515d30c3b2e0cee78e2af476fd2ed91.tar.gz tcl-6998aa298515d30c3b2e0cee78e2af476fd2ed91.tar.bz2 |
Make sure SetFooFromAny routines react reasonably when passed a NULL interp.
Diffstat (limited to 'generic/tclListObj.c')
-rw-r--r-- | generic/tclListObj.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/generic/tclListObj.c b/generic/tclListObj.c index 8a0f89a..d4f7da9 100644 --- a/generic/tclListObj.c +++ b/generic/tclListObj.c @@ -1718,10 +1718,12 @@ SetListFromAny( Tcl_DictObjSize(NULL, objPtr, &size); listRepPtr = NewListIntRep(size > 0 ? 2*size : 1, NULL); if (!listRepPtr) { - Tcl_SetResult(interp, - "insufficient memory to allocate list working space", - TCL_STATIC); - Tcl_SetErrorCode(interp, "TCL", "MEMORY", NULL); + if (interp) { + Tcl_SetResult(interp, + "insufficient memory to allocate list working space", + TCL_STATIC); + Tcl_SetErrorCode(interp, "TCL", "MEMORY", NULL); + } return TCL_ERROR; } listRepPtr->elemCount = 2 * size; @@ -1779,9 +1781,11 @@ SetListFromAny( listRepPtr = NewListIntRep(estCount, NULL); if (!listRepPtr) { - Tcl_SetObjResult(interp, Tcl_NewStringObj( - "Not enough memory to allocate the list internal rep", -1)); - Tcl_SetErrorCode(interp, "TCL", "MEMORY", NULL); + if (interp) { + Tcl_SetObjResult(interp, Tcl_NewStringObj( + "Not enough memory to allocate the list internal rep", -1)); + Tcl_SetErrorCode(interp, "TCL", "MEMORY", NULL); + } return TCL_ERROR; } elemPtrs = &listRepPtr->elements; |