generic

Clone Tools
  • last updated 8 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Merge branch 'master' of ssh://alice.wu.ac.at/usr/local/src/git-repo/nsf

nsf.c (NsfDebugGetDict): Parametrize length computation; remove unneeded nul-termination. [skip ci]

minor cleanup

* nsf.c (NsfDebugGetDict): Make use of strncat more robust by setting the destingation length to the remainder of the output buffer.

* nsf.c (ForwardArg): Provide a const'ed pointer to strpbrk, as required [CID 294162].

* nsf.c (ParamDefsFormat): Fix overrun in memcpy by correcting the destination-length argument [CID 294165].

* 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.