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.