generic

Clone Tools
  • last updated 8 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
* nsf.c: Fix all "-pedantic -ansi" errors.

* nsf.c (ParamDefsStore, NsfProcDeleteProc): Provide for counting a reference to the execNsPtr from the NsfProcContext structure. While I could not devise a script-level path to pull out the rug (execNsPtr) out from under NsfProcContext clients, I can only also not exclude the latter (from future C-level paths?). Better act defensively.

* nsfInt.h (STRING_NEW): Silence GCC 8.1 warnings on truncation risk using strncpy; made me wonder whether STRING_NEW would not be more robust against mis-computations of the destination-buffer length by using snprintf (mainly because snprintf does not nul-pad the destination buffer and always nul-terminates the destination buffer)?

* nsf.c (ArgumentParse): Handle NsfMethodNamePath result correctly.

* nsf.c (NsfSetterMethod): Handle NsfMethodNamePath result correctly.

* nsf.c (ObjectCmdMethodDispatch): Close another Tcl_Obj leak incurred by not handling the result from NsfMethodNamePath.

* nsf.c (FindNextMethod): Plumb another memleak (valgrind). The Tcl_Obj computed by NsfMethodNamePath must be refcount corrected.

* nsf.c (AliasGet): Plumbing a memleak found by valgrind. The computed Tcl_Obj from AliasIndex must be refcount-managed explicitly, otherwise the path via AliasGet leaks it.

* nsf.c (ParamOptionParse), nsfInt.h: Provide for own MAX and MIN macros, the ones reused implicitly from Tcl's tommath have vanished in 8.7 branches; and are not provided otherwise, at least in MinGW settings. Fixes 8.7 builds for MinGW under Win.

* nsf.c (ListSuperClasses): Fix refcounting for 8.5 non-threaded only, otherwise the patternString becomes unavailable once a preemptive decrement has been performed, leading to unexpected info results.

make stublib initialization more robust and provide meaningful error message in case of misconfigurations

improve comments

  1. … 9 more files in changeset.
improve wording

  1. … 4 more files in changeset.
fix double worlds in code documentation

fix typo

fix typos

  1. … 2 more files in changeset.
Remove unneeded ALLOC_ON_STACK

WIP

* nsf.c (ListMethod): Provide a disassemble implementation based on ::tcl::unsupported::disassemble. [::nsf::cmf::info disassemble] is generally available, the info ?object? method variants only in development mode. Implementation covers proc methods and ::nsf::procs. Along the way, prettify some code paths in ListMethod.

  1. … 3 more files in changeset.
add const declarations, whitespace changes

* nsf.c (Nsf_Init): Mark the namespace "::nsf::classes" and its children using "NS_SUPPRESS_COMPILATION". In 8.6+, this guards any commands in these auxiliary namespaces to be picked up by the bytecode compiler (if accessed in an unintended manner).

* nsf.c (ByteCompiled): Patch the proc command's namespace unconditionally, for 8.5 and 8.6.

further WIP

  1. … 1 more file in changeset.
WIP

  1. … 2 more files in changeset.
avoid potentially dangerous call strcat(); remove unneeded assignment

whitespace changes

break overlong lines

polish and comment the execNs change for Tcl 8.5

Quickfix fot Tcl 8.5 (needs still more investigation)

add const declarations, reduce variable scopes, break longish lines