Index: xotcl/ChangeLog =================================================================== diff -u -r308ae099d8de5e6aee3e2baa61b8585c22660087 -rd0042f1326f427aa395ed6e54d5690cb06d43c81 --- xotcl/ChangeLog (.../ChangeLog) (revision 308ae099d8de5e6aee3e2baa61b8585c22660087) +++ xotcl/ChangeLog (.../ChangeLog) (revision d0042f1326f427aa395ed6e54d5690cb06d43c81) @@ -23,8 +23,12 @@ 2004-07-19 Uwe Zdun * added checkoptions to non pos args - * added tests & documentation of non pos args + * added tests & documentation of non pos args +2004-07-18 jim@jam.sessionsnet.org + * Added file autogen.sh, to generate all configure files + * Added file autoclean.sh, to clean whole source tree, incl. configure + 2004-07-18 Gustaf.Neumann@wu-wien.ac.at * added removal of autom4te.cache to distclean * make doc added to "all" target @@ -111,11 +115,11 @@ are not enough arguments in the actual call. 2004-06-24 Gustaf.Neumann@wu-wien.ac.at - * fixed coredump for delegation to object without method specified + * fixed coredump for delegation to object without method specified (many thanks fot Bryan Schofield for the bug report) - + 2004-06-20 Gustaf.Neumann@wu-wien.ac.at - * removed inclusion of + * removed inclusion of * second version of delegator methods cmd and instcmd A delegator method is defined via Index: xotcl/generic/xotcl.c =================================================================== diff -u -r308ae099d8de5e6aee3e2baa61b8585c22660087 -rd0042f1326f427aa395ed6e54d5690cb06d43c81 --- xotcl/generic/xotcl.c (.../xotcl.c) (revision 308ae099d8de5e6aee3e2baa61b8585c22660087) +++ xotcl/generic/xotcl.c (.../xotcl.c) (revision d0042f1326f427aa395ed6e54d5690cb06d43c81) @@ -1,4 +1,4 @@ -/* $Id: xotcl.c,v 1.18 2004/07/30 09:21:36 neumann Exp $ +/* $Id: xotcl.c,v 1.19 2004/08/01 22:15:11 neumann Exp $ * * XOTcl - Extended OTcl * @@ -3814,9 +3814,9 @@ XOTclCallStackDump(in); #endif - if (!isTclProc) { + if (!isTclProc && obj->teardown) { co = obj->opt ? obj->opt->checkoptions : 0; - if (obj->teardown && (co & CHECK_INVAR) && + if ((co & CHECK_INVAR) && ((result = AssertionCheckInvars(in, obj, methodName, co)) == TCL_ERROR)) { goto finish; } @@ -3840,7 +3840,7 @@ fprintf(stderr, "method=%s\n", methodName); } */ - co = (!rst->callIsDestroy) && obj->opt ? obj->opt->checkoptions : 0; + co = !rst->callIsDestroy && obj->opt ? obj->opt->checkoptions : 0; if ((co & CHECK_INVAR) && ((result = AssertionCheckInvars(in, obj, methodName, co)) == TCL_ERROR)) { goto finish; @@ -3907,6 +3907,7 @@ printCall(in,"callProcCheck tclCmd", objc,objv); fprintf(stderr,"\tproc=%s\n",Tcl_GetCommandName(in,cmd)); #endif + result = (*Tcl_Command_objProc(cmd))(cp, in, objc, objv); #ifdef DISPATCH_TRACE @@ -6146,10 +6147,14 @@ if (!(obj->flags & XOTCL_INIT_CALLED)) { int newargs; + Tcl_Obj *resultObj = Tcl_GetObjResult(in); /* * Call the user-defined constructor 'init' */ - result = Tcl_GetIntFromObj(in,Tcl_GetObjResult(in),&newargs); + INCR_REF_COUNT(resultObj); + result = Tcl_GetIntFromObj(in,resultObj,&newargs); + DECR_REF_COUNT(resultObj); + if (result == TCL_OK && newargs+2 < objc) initArgsC = newargs+2; result = callMethod((ClientData) obj, in, XOTclGlobalObjects[INIT], Index: xotcl/generic/xotclInt.h =================================================================== diff -u -rae1eaf81cb417f648c39d1de1152d15fbdf2d36e -rd0042f1326f427aa395ed6e54d5690cb06d43c81 --- xotcl/generic/xotclInt.h (.../xotclInt.h) (revision ae1eaf81cb417f648c39d1de1152d15fbdf2d36e) +++ xotcl/generic/xotclInt.h (.../xotclInt.h) (revision d0042f1326f427aa395ed6e54d5690cb06d43c81) @@ -1,5 +1,5 @@ /* -*- Mode: c++ -*- - * $Id: xotclInt.h,v 1.4 2004/07/28 08:01:25 neumann Exp $ + * $Id: xotclInt.h,v 1.5 2004/08/01 22:15:11 neumann Exp $ * Extended Object Tcl (XOTcl) * * Copyright (C) 1999-2002 Gustaf Neumann, Uwe Zdun @@ -396,7 +396,7 @@ typedef struct XOTclStringIncrStruct { char *buffer; char *start; - int bufSize; + size_t bufSize; int length; } XOTclStringIncrStruct; Index: xotcl/generic/xotclUtil.c =================================================================== diff -u -rf7894d9be99a8da3a04218abcdb9bd46b6d625c8 -rd0042f1326f427aa395ed6e54d5690cb06d43c81 --- xotcl/generic/xotclUtil.c (.../xotclUtil.c) (revision f7894d9be99a8da3a04218abcdb9bd46b6d625c8) +++ xotcl/generic/xotclUtil.c (.../xotclUtil.c) (revision d0042f1326f427aa395ed6e54d5690cb06d43c81) @@ -1,5 +1,5 @@ /* -*- Mode: c++ -*- - * $Id: xotclUtil.c,v 1.1 2004/05/23 22:50:39 neumann Exp $ + * $Id: xotclUtil.c,v 1.2 2004/08/01 22:15:11 neumann Exp $ * * Extended Object Tcl (XOTcl) * @@ -71,7 +71,7 @@ if (currentChar < iss->start) { iss->length++; if (currentChar == iss->buffer) { - int newBufSize = iss->bufSize + blockIncrement; + size_t newBufSize = iss->bufSize + blockIncrement; char *newBuffer = ckalloc(newBufSize); currentChar = newBuffer+blockIncrement; /*memset(newBuffer, 0, blockIncrement);*/ @@ -100,7 +100,7 @@ XOTclStringIncrInit(XOTclStringIncrStruct *iss) { char *p; int i = 0; - const int bufSize = blockIncrement>2 ? blockIncrement : 2; + const size_t bufSize = blockIncrement>2 ? blockIncrement : 2; for (p=alphabet; *p; p++) { chartable[(int)*p] = ++i; Index: xotcl/library/store/XOTclGdbm/xotclgdbm.c =================================================================== diff -u -rf7894d9be99a8da3a04218abcdb9bd46b6d625c8 -rd0042f1326f427aa395ed6e54d5690cb06d43c81 --- xotcl/library/store/XOTclGdbm/xotclgdbm.c (.../xotclgdbm.c) (revision f7894d9be99a8da3a04218abcdb9bd46b6d625c8) +++ xotcl/library/store/XOTclGdbm/xotclgdbm.c (.../xotclgdbm.c) (revision d0042f1326f427aa395ed6e54d5690cb06d43c81) @@ -8,6 +8,7 @@ #include #include #include +#include #include #if (TCL_MAJOR_VERSION==8 && TCL_MINOR_VERSION<1)