Index: generic/xotcl.c =================================================================== diff -u -rc942f4e117d2aa3c8594702e0476a3f73a4147df -re5cee71c4fdd11860c1a897522c6d4202ebc64c4 --- generic/xotcl.c (.../xotcl.c) (revision c942f4e117d2aa3c8594702e0476a3f73a4147df) +++ generic/xotcl.c (.../xotcl.c) (revision e5cee71c4fdd11860c1a897522c6d4202ebc64c4) @@ -12393,11 +12393,16 @@ result = ArgumentCheck(interp, value, paramPtr, &flags, &checkedData, &outObjPtr); + if (value != outObjPtr) { + Tcl_ResetResult(interp); + } + if (flags & XOTCL_PC_MUST_DECR) { DECR_REF_COUNT(outObjPtr); } - + Tcl_SetIntObj(Tcl_GetObjResult(interp), (result == TCL_OK)); + return TCL_OK; } Index: tests/parameters.xotcl =================================================================== diff -u -rc942f4e117d2aa3c8594702e0476a3f73a4147df -re5cee71c4fdd11860c1a897522c6d4202ebc64c4 --- tests/parameters.xotcl (.../parameters.xotcl) (revision c942f4e117d2aa3c8594702e0476a3f73a4147df) +++ tests/parameters.xotcl (.../parameters.xotcl) (revision e5cee71c4fdd11860c1a897522c6d4202ebc64c4) @@ -38,6 +38,24 @@ ? {::xotcl::valuecheck lower Abc} 0 "no lower case chars" ? {string is lower abc} 1 "tcl command 'string is lower'" +####################################################### +# valuecheck +####################################################### +Test case valuecheck +Test parameter count 10000 + +Object create ::paramManager { + :method type=sex {name value} { + return "agamous" + } +} + +? {::xotcl::valuecheck sex,slot=::paramManager female} "1" +::paramManager destroy + +####################################################### +# cononical feature table +####################################################### # # parameter options # required