diff options
| author | donal.k.fellows@manchester.ac.uk <dkf> | 2012-03-26 12:51:15 (GMT) |
|---|---|---|
| committer | donal.k.fellows@manchester.ac.uk <dkf> | 2012-03-26 12:51:15 (GMT) |
| commit | cc83db4ab99ef2a12bbb2fc2081e7de91565cb26 (patch) | |
| tree | 1db6e1428e872a9de7d6e17956bad4dcfeeba688 /generic/tclOOBasic.c | |
| parent | 09330a8f6d305a77631a8991b24436a5fe46de73 (diff) | |
| download | tcl-cc83db4ab99ef2a12bbb2fc2081e7de91565cb26.zip tcl-cc83db4ab99ef2a12bbb2fc2081e7de91565cb26.tar.gz tcl-cc83db4ab99ef2a12bbb2fc2081e7de91565cb26.tar.bz2 | |
Implementation of TIP #380
Diffstat (limited to 'generic/tclOOBasic.c')
| -rw-r--r-- | generic/tclOOBasic.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/generic/tclOOBasic.c b/generic/tclOOBasic.c index b286088..329f0a4 100644 --- a/generic/tclOOBasic.c +++ b/generic/tclOOBasic.c @@ -281,6 +281,7 @@ TclOO_Object_Destroy( contextPtr->skip = 0; TclNRAddCallback(interp, AfterNRDestructor, contextPtr, NULL, NULL, NULL); + TclPushTailcallPoint(interp); return TclOOInvokeContext(contextPtr, interp, 0, NULL); } } @@ -434,8 +435,14 @@ TclOO_Object_Unknown( const char **methodNames; int numMethodNames, i, skip = Tcl_ObjectContextSkippedArgs(context); + /* + * If no method name, generate an error asking for a method name. (Only by + * overriding *this* method can an object handle the absence of a method + * name without an error). + */ + if (objc < skip+1) { - Tcl_WrongNumArgs(interp, skip, objv, "methodName ?arg ...?"); + Tcl_WrongNumArgs(interp, skip, objv, "method ?arg ...?"); return TCL_ERROR; } |
