summaryrefslogtreecommitdiffstats
path: root/generic/tclObj.c
diff options
context:
space:
mode:
authorjan.nijtmans <jan.nijtmans@noemail.net>2013-02-26 10:15:44 (GMT)
committerjan.nijtmans <jan.nijtmans@noemail.net>2013-02-26 10:15:44 (GMT)
commit3e6e4927d42dcfebbf92370af71aa2df1784d844 (patch)
treea077eb5e7a9757d92149fd5bdaa372acb20c652c /generic/tclObj.c
parent5a8eefd473ebca50a0b7a083449a413f6f63c663 (diff)
downloadtcl-3e6e4927d42dcfebbf92370af71aa2df1784d844.zip
tcl-3e6e4927d42dcfebbf92370af71aa2df1784d844.tar.gz
tcl-3e6e4927d42dcfebbf92370af71aa2df1784d844.tar.bz2
Don't panic if Tcl_ConvertToType is called for a type that doesn't have a setFromAnyProc, create a proper error message.
FossilOrigin-Name: 40f7c0065c7d756848e029166044860760438a7d
Diffstat (limited to 'generic/tclObj.c')
-rw-r--r--generic/tclObj.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/generic/tclObj.c b/generic/tclObj.c
index e14c740..24b818b 100644
--- a/generic/tclObj.c
+++ b/generic/tclObj.c
@@ -993,7 +993,12 @@ Tcl_ConvertToType(
*/
if (typePtr->setFromAnyProc == NULL) {
- Tcl_Panic("may not convert object to type %s", typePtr->name);
+ if (interp) {
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "can't convert value to type %s", typePtr->name));
+ Tcl_SetErrorCode(interp, "TCL", "API_ABUSE", NULL);
+ }
+ return TCL_ERROR;
}
return typePtr->setFromAnyProc(interp, objPtr);