nsf.c

Clone Tools
  • last updated 12 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- fix potential crash on deletes and recomputations of precedence orders in connection with multiple inheritance. One assumption in the precedence order computation is that the precedence orders of superclasses are computed before the precedence orders of the class itself. The check, when to perform this computation was to simple minded so fr, since it checked this requirement only on the current class, but not on superclasses.

- reduce implicit conversions

- reduce implicit conversions when compiled under tcl 8.5.*

  1. … 2 more files in changeset.
- reduce implicit conversions

- don't add extra newlines to log lines

- improve variable names - avoid call of strcmp more often

  1. … 1 more file in changeset.
Merge branch '2-1-0-rc' of ssh://alice.wu-wien.ac.at/usr/local/src/git-repo/nsf into 2-1-0-rc

- remove configure trace|profile

  1. … 2 more files in changeset.
merged

  1. … 1 more file in changeset.
- fix bug that sneaked-in in last commit

- prefer boolean expressions - reduce number of implicit signed/unsigned conversions

  1. … 3 more files in changeset.
- remove unneeded code in cases, when compiled with NDEBUG

- address cmdflags conversion

* nsf.c (ProcDispatchFinalize): Silence compiler warning on ckfree.

- fix debug output wen compiled without --enable-profile

* nsf.c (InvokeShadowedProc): Fix debug output when compiled without --enable-profile. Was originally added on 2-1-0-rc.

merging changes from master brach - move result reporting of nsf::procs into ProcDispatchFinalize() this fixes the result value reporting and timings for nsf::procs

  1. … 1 more file in changeset.
- move result reporting of nsf::procs into ProcDispatchFinalize() this fixes the result value reporting and timings for nsf::procs

merged

  1. … 3 more files in changeset.
- reduce implicit conversions

- define stubproc always, when "-deprecated" was used - use "Debug" severity for debug messages

  1. … 2 more files in changeset.
- white space change (avoid tabs)

Merge branch 'master' into 2-1-0-rc

  1. … 1 more file in changeset.
* nsf.c (GetObjectFromObj, TclDeletesObject): Remove two earlier fixes to deal with ::nsf::object::alloc failing under cmd deletion/recreation. The issue has been tackled more generally by a Tcl-side fix. Background: Since 2005 (commit fcb9ab1df3a9b2d1), in Tcl the cmdEpoch state in delete traces and delete callbacks (deleteProcs, destructors) has been compromised. Bumping the epoch of the cmd under deletion before executing the traces and callbacks had the potential of caching the cmd under in Tcl_Objs beyond its deletion (at least in our code path). In July 2017 (8.7a, commit 54fac92610d3bdd9), this potential realised by removing a guard expression (CMD_IS_DELETED) in the Tcl_Obj cache invalidation logic, which had protected from such invalid caches (as a side effect). As of today (8.7a, commit 71fa1f9c91), the underlying timing problem of epoch bumping has been resolved.

* nsf.c (TclDeletesObject): Provide an alternative fix to reflect the changed cache invalidation policy for Tcl_Obj cmd intrep in 8.7.

Save code instrumentation to demonstrate the problem

  1. … 1 more file in changeset.
move the logic if Tcl_GetCommandFromObj() is returning an epoched obj to a more central place (GetObjectFromObj()) such it might kick in on other potential occasions as well.

- use TclFreeIntRep() instead of direct function calls - perform TclFreeIntRep() for Class and Object creation under Tcl 8.7

fix for Tcl 8.7: - when recreating an nsf object in in tcl 8.7, we seem to have to invalidate the intrep, otherwise the new command is not picked up by a later Tcl_GetCommandFromObj()

* nsf.c (NsfMethodAliasCmd): Tcl 8.7 is more picky about typePtr and intrep being in line. We need to NULL the typePtr explicitly. TclFreeIntRep does so for us as good Tcl citizens, rather than setting bodyObj->typePtr == NULL directly.