diff options
| author | dkf <donal.k.fellows@manchester.ac.uk> | 2012-03-28 13:30:53 (GMT) |
|---|---|---|
| committer | dkf <donal.k.fellows@manchester.ac.uk> | 2012-03-28 13:30:53 (GMT) |
| commit | e558a67aff6d71e40e64a1b49f23341e53062bc4 (patch) | |
| tree | 35f8922b46b33a26720eca7b667c6aed392e90a3 /generic/tclOOBasic.c | |
| parent | f6c5510decd1542854455c65cc77a663df0c68f2 (diff) | |
| parent | 76355c598beb1f86dd374d44e2391378abae9c06 (diff) | |
| download | tcl-e558a67aff6d71e40e64a1b49f23341e53062bc4.zip tcl-e558a67aff6d71e40e64a1b49f23341e53062bc4.tar.gz tcl-e558a67aff6d71e40e64a1b49f23341e53062bc4.tar.bz2 | |
merge trunk
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; } |
