diff options
author | dgp <dgp@users.sourceforge.net> | 2011-04-21 12:58:31 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2011-04-21 12:58:31 (GMT) |
commit | 3dee0582a464245f4ebfb6cc887e198566d3f035 (patch) | |
tree | b8ecdf481ef7cee8415ecfaad655ad6d985cbbf0 /generic | |
parent | 445fd51fa9afc1afece5244fbaa88454f3d310c5 (diff) | |
download | tcl-3dee0582a464245f4ebfb6cc887e198566d3f035.zip tcl-3dee0582a464245f4ebfb6cc887e198566d3f035.tar.gz tcl-3dee0582a464245f4ebfb6cc887e198566d3f035.tar.bz2 |
Make sure SetFooFromAny routines react reasonably when passed a NULL interp.
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclCompile.c | 7 | ||||
-rw-r--r-- | generic/tclIndexObj.c | 2 | ||||
-rw-r--r-- | generic/tclNamesp.c | 4 | ||||
-rw-r--r-- | generic/tclObj.c | 4 |
4 files changed, 15 insertions, 2 deletions
diff --git a/generic/tclCompile.c b/generic/tclCompile.c index 660a1f2..0b1a3ff 100644 --- a/generic/tclCompile.c +++ b/generic/tclCompile.c @@ -333,12 +333,12 @@ Tcl_ObjType tclByteCodeType = { * compiling its string representation. This function also takes * a hook procedure that will be invoked to perform any needed post * processing on the compilation results before generating byte - * codes. + * codes. interp is compilation context and may not be NULL. * * Results: * The return value is a standard Tcl object result. If an error occurs * during compilation, an error message is left in the interpreter's - * result unless "interp" is NULL. + * result. * * Side effects: * Frees the old internal representation. If no error occurs, then the @@ -515,6 +515,9 @@ SetByteCodeFromAny(interp, objPtr) * being compiled. Must not be NULL. */ Tcl_Obj *objPtr; /* The object to make a ByteCode object. */ { + if (interp == NULL) { + return TCL_ERROR; + } return TclSetByteCodeFromAny(interp, objPtr, (CompileHookProc *) NULL, (ClientData) NULL); } diff --git a/generic/tclIndexObj.c b/generic/tclIndexObj.c index 9d8679c..79fc262 100644 --- a/generic/tclIndexObj.c +++ b/generic/tclIndexObj.c @@ -308,9 +308,11 @@ SetIndexFromAny(interp, objPtr) Tcl_Interp *interp; /* Used for error reporting if not NULL. */ register Tcl_Obj *objPtr; /* The object to convert. */ { + if (interp) { Tcl_AppendToObj(Tcl_GetObjResult(interp), "can't convert value to index except via Tcl_GetIndexFromObj API", -1); + } return TCL_ERROR; } diff --git a/generic/tclNamesp.c b/generic/tclNamesp.c index 4130c66..77352a1 100644 --- a/generic/tclNamesp.c +++ b/generic/tclNamesp.c @@ -3913,6 +3913,10 @@ SetNsNameFromAny(interp, objPtr) Namespace *nsPtr, *dummy1Ptr, *dummy2Ptr; register ResolvedNsName *resNamePtr; + if (interp == NULL) { + return TCL_ERROR; + } + /* * Get the string representation. Make it up-to-date if necessary. */ diff --git a/generic/tclObj.c b/generic/tclObj.c index 43f0d2e..7b9bb61 100644 --- a/generic/tclObj.c +++ b/generic/tclObj.c @@ -3597,6 +3597,10 @@ SetCmdNameFromAny(interp, objPtr) Namespace *currNsPtr; register ResolvedCmdName *resPtr; + if (interp == NULL) { + return TCL_ERROR; + } + /* * Get "objPtr"s string representation. Make it up-to-date if necessary. */ |