Index: README.release =================================================================== diff -u -N -rbb380c8762b4afb6c0c87089fb8ba33535830391 -r2dca7abdd5d83421b31b220bc6dabba1047d68fb --- README.release (.../README.release) (revision bb380c8762b4afb6c0c87089fb8ba33535830391) +++ README.release (.../README.release) (revision 2dca7abdd5d83421b31b220bc6dabba1047d68fb) @@ -9,7 +9,8 @@ make test 2>&1|cat |fgrep Overall * configure with --enable-development and activate valgrind in Makefile make test 2>&1|cat |fgrep "definitely lost" - (8.5 ok, whenevery test returns "40 bytes in 2 blocks") + (8.5.11 ok, when every test returns "40 bytes in 2 blocks") + (8.5.14 ok, when on test reurns "64 bytes in 1 blocks") * get rid of non-ansi-c make "CFLAGS_DEFAULT=-ansi -pedantic" (warnings are ok, errors not) @@ -22,14 +23,15 @@ make install make install-aol test with naviserver/aolserver (xowiki/xowf) - * tcl 8.6b2: + * tcl 8.6: * configure with --enable-development make test * configure with --enable-memcount=yes make test 2>&1|cat |fgrep Overall * configure with --enable-development and activate valgrind in Makefile make test 2>&1|cat |fgrep "definitely lost" (8.6b2 ok, whenevery test returns "40 bytes in 2 blocks") + (8.6.0 ok, whenevery test returns "0 bytes in 0 blocks") - Announcement * Summarize changes since the last release in doc/Announce-VERSION Index: TODO =================================================================== diff -u -N -r5e494cf3cf01d01128b365f91ed3cd9716b1b11e -r2dca7abdd5d83421b31b220bc6dabba1047d68fb --- TODO (.../TODO) (revision 5e494cf3cf01d01128b365f91ed3cd9716b1b11e) +++ TODO (.../TODO) (revision 2dca7abdd5d83421b31b220bc6dabba1047d68fb) @@ -4685,7 +4685,9 @@ ======================================================================== TODO: - - spellcheck / ChangeLog (to point out differences to 2.0b3) + - update + spellcheck / ChangeLog (to point out differences to 2.0b3) + - recheck Announce + Stefan: doc itmes Index: generic/asm/nsfAssemble.c =================================================================== diff -u -N -r1ed65d1a290eee7055d47433bae07b5232a1ddb7 -r2dca7abdd5d83421b31b220bc6dabba1047d68fb --- generic/asm/nsfAssemble.c (.../nsfAssemble.c) (revision 1ed65d1a290eee7055d47433bae07b5232a1ddb7) +++ generic/asm/nsfAssemble.c (.../nsfAssemble.c) (revision 2dca7abdd5d83421b31b220bc6dabba1047d68fb) @@ -171,10 +171,10 @@ static int AsmInstructionArgvCheck(Tcl_Interp *interp, int from, int to, CONST char **argType, int nrSlots, int nrStatements, Tcl_Obj **wordOv, Tcl_Obj *lineObj) { - int j, result; + int j; for (j = from; j < to; j += 2) { - int argIndex, typesIndex, intValue; + int argIndex, typesIndex, intValue, result; //fprintf(stderr, "check arg type %s\n", ObjStr(wordOv[j])); result = Tcl_GetIndexFromObj(interp, wordOv[j], asmStatementArgType, @@ -338,33 +338,35 @@ //fprintf(stderr, "NsfAsmProcStub %s is called, tcd %p object %p\n", ObjStr(objv[0]), cd, cd->object); if (likely(cd->paramDefs && cd->paramDefs->paramsPtr)) { - ParseContext *pcPtr; ALLOC_ON_STACK(Tcl_Obj*, objc, tov); fprintf(stderr, "not implemented yet\n"); #if 0 - pcPtr = (ParseContext *) NsfTclStackAlloc(interp, sizeof(ParseContext), "parse context"); - /* - * We have to substitute the first element of objv with the name - * of the function to be called. Since objv is immutable, we have - * to copy the full argument vector and replace the element on - * position [0] - */ - memcpy(tov, objv, sizeof(Tcl_Obj *)*(objc)); - //tov[0] = tcd->procName; - - /* If the argument parsing is ok, the body will be called */ - result = ProcessMethodArguments(pcPtr, interp, NULL, 0, - cd->paramDefs, objv[0], - objc, tov); - - if (likely(result == TCL_OK)) { - result = InvokeShadowedProc(interp, cd->procName, cd->cmd, pcPtr); - } else { - /*Tcl_Obj *resultObj = Tcl_GetObjResult(interp); - fprintf(stderr, "NsfProcStub: incorrect arguments (%s)\n", ObjStr(resultObj));*/ - ParseContextRelease(pcPtr); - NsfTclStackFree(interp, pcPtr, "release parse context"); + { + ParseContext *pcPtr; + pcPtr = (ParseContext *) NsfTclStackAlloc(interp, sizeof(ParseContext), "parse context"); + /* + * We have to substitute the first element of objv with the name + * of the function to be called. Since objv is immutable, we have + * to copy the full argument vector and replace the element on + * position [0] + */ + memcpy(tov, objv, sizeof(Tcl_Obj *)*(objc)); + //tov[0] = tcd->procName; + + /* If the argument parsing is ok, the body will be called */ + result = ProcessMethodArguments(pcPtr, interp, NULL, 0, + cd->paramDefs, objv[0], + objc, tov); + + if (likely(result == TCL_OK)) { + result = InvokeShadowedProc(interp, cd->procName, cd->cmd, pcPtr); + } else { + /*Tcl_Obj *resultObj = Tcl_GetObjResult(interp); + fprintf(stderr, "NsfProcStub: incorrect arguments (%s)\n", ObjStr(resultObj));*/ + ParseContextRelease(pcPtr); + NsfTclStackFree(interp, pcPtr, "release parse context"); + } } #endif /*fprintf(stderr, "NsfProcStub free on stack %p\n", tov);*/ Index: generic/nsf.c =================================================================== diff -u -N -rdf0cf3d60b6d6b5109997b00ceeeebec611db7fc -r2dca7abdd5d83421b31b220bc6dabba1047d68fb --- generic/nsf.c (.../nsf.c) (revision df0cf3d60b6d6b5109997b00ceeeebec611db7fc) +++ generic/nsf.c (.../nsf.c) (revision 2dca7abdd5d83421b31b220bc6dabba1047d68fb) @@ -1236,7 +1236,6 @@ static int GetObjectFromObj(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfObject **objectPtr) { - int result; NsfObject *object; CONST char *string; Tcl_Command cmd; @@ -1278,13 +1277,12 @@ DECR_REF_COUNT(tmpName); } - if (object) { - if (objectPtr) *objectPtr = object; - result = TCL_OK; - } else { - result = TCL_ERROR; + if (likely(object != NULL)) { + if (objectPtr) {*objectPtr = object;} + return TCL_OK; } - return result; + + return TCL_ERROR; } /* @@ -20933,8 +20931,8 @@ NsfParameterInvalidateObjectCacheCmd(Tcl_Interp *interp, NsfObject *object) { #if defined(PER_OBJECT_PARAMETER_CACHING) if (object->opt && object->opt->parsedParamPtr) { - fprintf(stderr, " %p %s invalidate %p\n", object, - ObjectName(object), object->opt->parsedParamPtr); + /*fprintf(stderr, " %p %s invalidate %p\n", object, + ObjectName(object), object->opt->parsedParamPtr);*/ ParsedParamFree(object->opt->parsedParamPtr); object->opt->parsedParamPtr = NULL; } @@ -21831,8 +21829,8 @@ * We have object-specific parameters. Do not use the per-class cache, * and do not save the results in the per-class cache */ - fprintf(stderr, "per-object configure obj %s flags %.6x\n", - ObjectName(object), object->flags); + /*fprintf(stderr, "per-object configure obj %s flags %.6x\n", + ObjectName(object), object->flags);*/ class = NULL; } else { class = object->cl;