summaryrefslogtreecommitdiffstats
path: root/generic/tclListObj.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2011-04-21 13:47:48 (GMT)
committerdgp <dgp@users.sourceforge.net>2011-04-21 13:47:48 (GMT)
commit6998aa298515d30c3b2e0cee78e2af476fd2ed91 (patch)
tree6159f577b200fa32f4575a1ead43307fa7ff8f7f /generic/tclListObj.c
parent4779fe18796c2f1adad2712560bc0cfe35e844be (diff)
parent7814414e5c501546b9abc27e7d5016acb7a9ff03 (diff)
downloadtcl-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.c18
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;