Skip to content

9.41 Release

Latest
Compare
Choose a tag to compare
@jfriesne jfriesne released this 19 Aug 14:27
· 3 commits to master since this release

9.41 - Released 8/19/2024

  • Added a MUSCLE_NEVER_RETURNS_NULL macro that can be used to tag functions
    or methods that will never return a NULL pointer under any circumstances
    (to enable a compiler warning when their caller tests against NULL)
  • Added a WITH_TAGGED_POINTERS option to the CMakeLists.txt. Defaults to ON.
  • Added support for -DWITH_OBJECT_COUNTING=ON to the CMakeLists.txt.
  • Modified StorageReflectSession::CloneDataNodeSubtree() to no longer set
    the SETDATANODE_FLAG_DONTOVERWRITEDATA flag when recursing to children.
    That way, it can be used to update existing subtrees as well as create
    new ones.
  • Rewrote the PathMatcher class so that it now stores patterns of
    different lengths in separate tables, rather than all together in a
    single table. That way it's possible to efficiently access only the
    patterns that are relevant for a given node-depth, without having to
    iterate past all of the irrelevant ones every time.
  • Added DECLARE_COUNTED_OBJECT tags to the PathMatcher, NodePathMatcher,
    StringMatcher, and StringMatcherQueue classes.
  • Updated DataNode ctor to default-initialize member-variables rather
    than relying on Init() to do that (since other methods could get called
    before Init() gets called, in some cases)
  • Removed the deprecated constant PR_NAME_SET_QUIETLY. (Use the
    SETDATANODE_FLAG_QUIET SetDataNodeFlag instead)
  • Modified a number of Ref-returning methods to return (const Ref &)
    instead, for better performance and so that they can be called inline
    without causing clang-tidy to worry about potential use-after-free issues.
  • Modified the PointerAndBits class to hold a real pointer and not a
    uintptr when the -DMUSCLE_AVOID_TAGGED_POINTERS compiler-flag is set.
  • Moved the va_list property out of the LogCallbackArgs class and into
    a separate argument to LogCallback::Log(), so that we don't have to
    deal with va_list's weird restrictions regarding object-lifetimes.
  • Removed all setter methods from LogCallbackArgs class to make it immutable.
  • Changed the Set*() methods in SysLog.h to return void instead of status_t.
  • Fixed a number of warnings reported by clang-tidy.