nsf.c

Clone Tools
  • last updated 11 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
- minor cleanup

- generic/nsfError.c: Made sure that the colon prefix is not printed in occurrences of NsfObjWrongArgs() - generic/nsfInt.h: Advertising the MethodName() function prototype - tests/parameters.test: Added a corresponding test

  1. … 3 more files in changeset.
- nsf.c: implemented "... info method origin ..." which returns the implementation handle (in contrast to the registration handle) of a method.

  1. … 3 more files in changeset.
-nsf.c: * move to greedy assert to an inner scope ("info method ...") * allow testwise "switch" as object parameter (when it is used, accessors are deactivated for this attribute) * extended regression test

  1. … 5 more files in changeset.
- changed Stack example in tutorial from constructor to :variable - allow just valid specs for :attribute and :variable methods - improved error message for invalid parameter specs (with leading colons) - extended regression test

  1. … 5 more files in changeset.
- fixed book-keeping for TclNamespace refcounting such that now alias.test, destroy.test and test.xotcl run now clean, 2 test are still open with tcl 8.5.10 (contains.test and xotcomm.test)

  1. … 1 more file in changeset.
- nsf.c: fixed autoname problem with code from tcl trunk

  1. … 1 more file in changeset.
* added paramPtr->name to MEM_COUNT tracing * renamed NEW_STRING to STRING_NEW * added STRING_FREE, calling MEM_COUNT macros * checked all ckfree in nsf.c, everything allocated is covered by the MEM_COUNT macros

  1. … 2 more files in changeset.
- minor code cleanup

  1. … 1 more file 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: added cmd __db_compile_epoch for compile-epoch introspection

  1. … 3 more files in changeset.
- nsf.c: * fixed a bug in "info parameter list|... name" when the named parameter is not found (returns now empty, before, it was returing the full list). * added flag "-nocomplain" to nsf::var::unset - nx.tcl * added "delete variable" analogous to "delete attribute" * unset instance variable for object-level "delete attribute" * extended regression test

  1. … 6 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: * change DeleteProcsAndVars, such it deletes procs and vars explicitely in all namespaces * added more sanity checks for parameterContexts, testing in ParseContextRelease() in DEBUG mode * provide debug-refcounts for "pcPtr.objv" * provide debug-refcounts for "pcPtr.clientData"

  1. … 3 more files in changeset.
* provide debug-refcounts for "NSNamespace" * provide debug-refcounts for "nextArgumentVector" * updated TODO for refcount debugging

  1. … 1 more file in changeset.
* added explicit names for refcounting for "freeList" (for forwaders)

  1. … 1 more file in changeset.
- nsf.c: added explicit names for refcounting for "paramDefsObj"

  1. … 1 more file 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.
- nsf.c: * improved INCR_REF_COUNT/DECR_REF_COUNT for easier tracking of potential refcount errors * added macros DECR_REF_COUNT2() and INCR_REF_COUNT2() for easing the association of refcounts to locations in the code by providing names for refcounts. * fixed a refcount bug for valueObjs in non-NRE-enabled versions in the argument vector of scripted methods (found via INCR_REF_COUNT2/DECR_REF_COUNT2)

  1. … 3 more files in changeset.
- fix a few typos

  1. … 2 more files in changeset.
- nsf.c: * fixing compliation with NSF_MEM_COUNT * New function DeleteProcsAndVars() to trigger deletion of ParamDefs (fixes a small mmemory leak); * improved comments

  1. … 5 more files in changeset.
Merge branch '2.0.0-develop' of ssh://alice.wu-wien.ac.at/usr/local/src/git-repo/xotcl into 2.0.0-develop

Conflicts:

TODO

  1. … 1 more file in changeset.
- nsf.c: * added flag "-array" to nsf::var::set such we have now "::nsf::var::set ?-array? object varName ?value?" With "-array", nsf::var::set behaves like "array get" or "array set" (on instance variables) * use "::nsf::var::set -array" in serializer symmetrically to scalar case * extended regression test

  1. … 6 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.
- generic/nsf.c: Fixed some typos ...

- generic/nsf.c / NextSearchAndInvoke(): Prior to this commit, next calls from within submethod leaves resulted in the interp's unknown flag to be set. While for dispatches without filter indirection this remains hidden and unnoticed, registered filters triggered an unwanted unknown dispatch in such scenarios. Consequently, such leaf next's in submethods behaved differently from the method equivalents. The patch identifies such leaf-next dispatches by watching out for a characteristic callstack structure. - tests/submethods.test: Add a characteristic test for the above patch. - tests/disposition.test: Some cleanup ...

  1. … 2 more files in changeset.
- nx.tcl: * added support for "variable" on the class-level * added flag "noconfig" to object parameter options * parameters with "noconfig" are omitted in "info parameter syntax" and "info parameter list" * used switches for all configurable boolean options for "variable" and "attribute" * regularized the interface of "variable" and "attribute" * extended regression test

  1. … 5 more files 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.