Closed kodebach closed 1 year ago
elektraMalloc
et al. are likely broken (for some use cases) in this PR. See https://github.com/kodebach/libelektra/commit/dd1b9ec85c16d0e68b35e5f55592f18f386ab0c8 for how I plan to rectify that. This works (*) and I'm pretty sure is an improvement. It definitely allows the compiler to perform more analysis, since I needed https://github.com/kodebach/libelektra/commit/bd1ff1ed9001a7b997a90d089562b99cc67ef677 to fix some GCC warnings after the change. It may also improve performance, since the compiler might optimize differently. However, I'm also open to reverting these changes and going back to having elektraMalloc
et al. as normal functions in libelektra-base
like elektraFormat
.
(*) the Checks in https://github.com/kodebach/libelektra/pull/41 (previous incarnation of these PRs) compile
EDIT: I decided to instead leave the functions unchanged for this PR, and only introduce them as static inline
in #4941.
@lawli3t @atmaxinger @hannes99 @flo91 @lukashartl If you review, please read the PR description it explains what's happening in this PR and which files have interesting changes.
jenkins build libelektra please
jenkins build libelektra please
What happens in this PR?
Continuing from #4920, this PR includes further progress on the decisions mentioned in #4920. The goal for this PR is to finish all the header changes, i.e.
src/include
should (basically) have it's new contents completed with this PR.old_helper.h
header into more modular unitsold_helper.h
kdbprivate.h
into more modular units. I did this manually, because I wanted to verify wherekdbprivate.h
is used and why. Partly to ensure there isn't some place that shouldn't use it and partly to inform howkdbprivate.h
should be split up.Hints for reviewers
As with #4920 this PR has a large number of changed files. Most of them once again are only updated
#include
s.src/include/**
split up, moved, rearranged headers according to decisions (the thing that causes all the other changes)src/libs/elektra/CMakeLists.txt
CMake update, not sure if it's needed here, may have slipped into the wrong commit and may only required by #4941, but doesn't break anythingsrc/libs/elektra/backends.h
new header extracted fromkdbprivate.h
src/libs/elektra/hooks.h
new header extracted fromkdbprivate.h
src/libs/elektra/internal.c
movedelektraMemcpy
andelektraMemmove
tokeyset.c
src/libs/elektra/keyset.c
adds a newDEFAULT_KEYSET_SIZE
because the oldKEYSET_SIZE
is no longer in a header AND movedelektraMemcpy
andelektraMemmove
frominternal.c
src/libs/elektra/keytest.c
removal ofkeyIs*
functions which are nowstatic inline
aliasessrc/libs/elektra/symbols.map
now exportselektraReadNamespace
as private (no idea how it worked before)src/libs/highlevel/elektra.h
new header extracted fromkdbprivate.h
src/plugins/xmltool/xmltool.h
removal of unnecessary redeclaration ofelektraStrLen
src/tools/kdb/gen/templates/collect.sh
adds amkdir -p
(no idea what it is needed now)tests/ctest/test_keyset_cow.c
adds a newDEFAULT_KEYSET_SIZE
because the oldKEYSET_SIZE
is no longer in a headerAll other changed files are only changes in
#include
s.Those are the main changes of this PR, below are some extra fixes to please the CI:
doc/man/**
not sure why those changes were needed, but the CI complainedscripts/docker/openwrt/sdk/Dockerfile
update OpenWrt image (should happen on master at some point too)tests/linkchecker.whitelist
add https://opensesame.libelektra.org and https://pull.libelektra.org because of certificate issuesBasics
doc/news/_preparation_next_release.md
which contains_(my name)_
) Please always add them to the release notes.module: short statement
syntax)close #X
, are in the commit messages.doc/news/_preparation_next_release.md
scripts/dev/reformat-all
Checklist
Review
Labels