Index: TODO =================================================================== diff -u -r3db8a2f9d04cd0fa72d5ab0ad67be070b9db5ce3 -rb4c1e40335b8210a65b8a7a560d7d69a38febbbd --- TODO (.../TODO) (revision 3db8a2f9d04cd0fa72d5ab0ad67be070b9db5ce3) +++ TODO (.../TODO) (revision b4c1e40335b8210a65b8a7a560d7d69a38febbbd) @@ -3767,6 +3767,9 @@ - reduce verbosity - extended regression test +- nsf.c: fix call of DispatchDefaultMethod() in cases it triggers an error for 8.6b +- nx.tcl: give a slightly better error message in case the root-object of an ensemble is called directly + ======================================================================== TODO: Index: generic/nsf.c =================================================================== diff -u -r56a0f7cc781f54a9f16fea75e9df1dfef4c8e11a -rb4c1e40335b8210a65b8a7a560d7d69a38febbbd --- generic/nsf.c (.../nsf.c) (revision 56a0f7cc781f54a9f16fea75e9df1dfef4c8e11a) +++ generic/nsf.c (.../nsf.c) (revision b4c1e40335b8210a65b8a7a560d7d69a38febbbd) @@ -10484,7 +10484,7 @@ */ result = ObjectDispatch(clientData, interp, objc, objv, 0); } else { - result = DispatchDefaultMethod(interp, (NsfObject *)clientData, objv[0], 0); + result = DispatchDefaultMethod(interp, (NsfObject *)clientData, objv[0], NSF_CSC_IMMEDIATE); } return result; } Index: library/nx/nx.tcl =================================================================== diff -u -r21336c95f6123ebf608e5ab45b9674cffba35303 -rb4c1e40335b8210a65b8a7a560d7d69a38febbbd --- library/nx/nx.tcl (.../nx.tcl) (revision 21336c95f6123ebf608e5ab45b9674cffba35303) +++ library/nx/nx.tcl (.../nx.tcl) (revision b4c1e40335b8210a65b8a7a560d7d69a38febbbd) @@ -484,7 +484,9 @@ } :protected method defaultmethod {} { - set obj [uplevel {::nsf::current}] + if {[catch {set obj [uplevel ::nsf::current]}]} { + error "Ensemble dispatch called outside of method context" + } set path [::nsf::current methodpath] set l [string length $path] set submethods [$obj ::nsf::methods::object::info::lookupmethods -path "$path *"]