summaryrefslogtreecommitdiffstats
path: root/generic/tclListObj.c
diff options
context:
space:
mode:
authordgp <dgp@noemail.net>2011-04-21 13:47:48 (GMT)
committerdgp <dgp@noemail.net>2011-04-21 13:47:48 (GMT)
commit67e50a2085da9cf3879963bfdc831f1bb054fa71 (patch)
tree6159f577b200fa32f4575a1ead43307fa7ff8f7f /generic/tclListObj.c
parent98800f0eda0647431a578cb25987827538b73ec7 (diff)
parent8ffca00c252fc6b8bd5a411c2d0db20a45adfb71 (diff)
downloadtcl-67e50a2085da9cf3879963bfdc831f1bb054fa71.zip
tcl-67e50a2085da9cf3879963bfdc831f1bb054fa71.tar.gz
tcl-67e50a2085da9cf3879963bfdc831f1bb054fa71.tar.bz2
Make sure SetFooFromAny routines react reasonably when passed a NULL interp.
FossilOrigin-Name: 36b0307ba2ada5375598e444799d6f9fd0edb46b
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;