nsfStack.c

Clone Tools
  • last updated 21 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- use 3-argument version of NsfMethodNamePath()

  1. … 3 more files in changeset.
Adding to the state of the method-path introspection reform; introducing CallStackGetFrame() which can also be used to implement CallStackGetTopFrame

  1. … 1 more file in changeset.
- fix name paths in error messages triggered from ArgumentParse()

  1. … 5 more files in changeset.
- complete nonnull+assert adding in .c-files other than nsf.c

  1. … 13 more files in changeset.
- update more copyright notices

  1. … 31 more files in changeset.
nsf.c: - simplify few inner code pieces based on assertions - add serveral more assertions based on nonnull sepcifications.

  1. … 4 more files in changeset.
- fix bug in interaction between uplevel method from tcl procs

  1. … 2 more files in changeset.
-nsf.c: - fix bug in interaction between uplevel method and interceptor transparency - extend regression test

  1. … 2 more files in changeset.
- further release work

  1. … 35 more files in changeset.
- nsfPointer.c: add parameter to Nsf_PointerDelete() for allowing optional freeing - reduced default verbosity

  1. … 1 more file in changeset.
- updated 34 copyright notices

  1. … 33 more files in changeset.
- alias reform: instead of calling first an alias with a stack frame followed by the dispatched of the aliased cmd, resolve aliases internally in dispatch. This has the advantage that we do not have to ignore the "transparent" stack frame in some sitations, and we have much less problems with the names of the aliased cmds (e.g. objects) in the introspection methods. Additionally, several problem cases disappeared from the regression test cases. In addition, the new approach is faster. - eliminating obsolete flag NSF_CSC_CALL_IS_TRANSPARENT

  1. … 9 more files in changeset.
- generic/nsfStack.c, CscFinish(): Without further restricting object deletion based on activation counts, very-late method dispatches during the "physical" clean-up stage (e.g., a dispatch issued by an unset variable trace script) lead to premature object and class deletions, violating the total deletion order used in ObjectSystemsCleanup().

nsf.c, nsf.h, nsfStack.c, nx.tcl, tcl-cool.tcl, xotcl2.tcl - fix spelling in comments - strip unneeded space

  1. … 6 more files in changeset.
- update copyright notices with MIT licens from OSI (http://www.opensource.org/licenses/MIT)

  1. … 26 more files in changeset.
- provide more hints for gcc

  1. … 2 more files in changeset.
- minor optimization

- minor optimizations

  1. … 2 more files in changeset.
- minor optimizations

  1. … 1 more file in changeset.
* added support for calling private methods via -local and filters * extended regression test for private + filters

  1. … 6 more files in changeset.
* per-thread MEM_COUNT tested with aolserver/naviserver * removed INTERP macros for MEM_COUNT (since we use now per-thread tables instead of per-interp tables as in the first implementation)

  1. … 5 more files in changeset.
- nx.tcl * renamed "attribute" to "property" * renamed "defaultAttributeCallProtection" to "defaultPropertyCallProtection" * renamed "nx::Attribute" to ""nx::VariableSlot" * renamed "BootStrapAttributeSlot" to "BootStrapVariableSlot" * renamed "createBootstrapAttributeSlots" to "createBootstrapVariableSlots" * removed method attributes * implemented old attributes definition in xotcl2 as method "parameter"

  1. … 32 more files in changeset.
- nsf.c: * enabled MEM_COUNT debugging for multi-threaded apps. We collect the MEM_COUNT statistics now per interp. Therefore, we have to pass around "interp" in case where alloc() and free() or refCount functions are used (textually, a big change) * verified, that nsf runs clean in aolserver/naviserver (all INCR_REF_COUNTS all balanced)

  1. … 8 more files in changeset.
nsf.c: * provide debug-refcounts for "class.activationCount" * provide debug-refcounts for "object.activationCount" * deactivated CHECK_ACTIVATION_COUNTS oer default * tested refcounts with Tcl 8.6b2, found bug in Tcl 8.6b2 and submitted patch to sourceforge

  1. … 3 more files in changeset.
- nsf.c: * refined refcounting debugging * fixed various refcounting bugs, especially in error cases. * added explicit INCR_REF_COUNTs on Tcl_Objs with 0-refCount to ease debugging

  1. … 9 more files in changeset.
- generic/nsfStack.c / CallStackPopAll(): When cleaning up the unstacked CSC entries, the borderline case of just 1 CSC entry led to a dangling pointer (and so a crash). This was caused by the unhandled side effect of CscListRemove() (or, rather, NsfClassListUnlink()) which updates the interp's cscList pointer in the 1-list-entry scenario. By using a copy of this pointer in the cleanup loop, this scoped pointer became dangling. To reproduce the issue (prior to this commit), run for example:

Object create o { exit -1 }

I extended the CscListRemove() interface for a conditional out

parameter, to be used for tracking changes to the interp's cscList

pointer.

- generic/nsf.c: Modified the occurrences of CscListRemove() to

reflect its extended interface.

- generic/nsfStack.c: Extended the documentation snippets of the

CscList* operations accordingly.

  1. … 1 more file in changeset.
- nsf.c: improve performance (branch prediction) by using likely/unlikely macros for gcc

  1. … 3 more files in changeset.
- make sure to place declarations only at the begin of a block - minor code cleanup

  1. … 1 more file in changeset.
- generic/nsf.c: Fixed [current callingmethod] for submethods (i.e., reporting submethods as calling methods, including their methodpath). Added tests covering the fix (see tests/submethods.test). - generic/nsfStack.c (CallStackMethodPath): Re-arranged the traversal slightly, to escape non-ensemble frames (eval CFRAMEs) as parts of the method path. Added test (see tests/submethods.test). - library/nx/nx.tcl: Corrected the impl of Ensemble->defaultmethod() (e.g., used self instead of current) - tests/disposition.test: Fixed test cases turned out to be false positives. Before the fixes, [current methodpath] gave non-empty results for simple object aliases.

  1. … 4 more files in changeset.
- adding spaces after comma in argument lists

  1. … 5 more files in changeset.