diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-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 |
5 files changed, 22 insertions, 2 deletions
@@ -1,3 +1,10 @@ +2011-04-21 Don Porter <dgp@users.sourceforge.net> + + * generic/tclCompile.c: Make sure SetFooFromAny routines react + * generic/tclIndexObj.c: reasonably when passed a NULL interp. + * generic/tclNamesp.c: + * generic/tclObj.c: + 2011-04-21 Jan Nijtmans <nijtmans@users.sf.net> * generic/tcl.h: fix for [Bug 3288345]: Wrong Tcl_StatBuf 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. */ |