core: add a small helper-struct that keeps track of xml-parameters

The XML-parameter code is a mess. Ownership is unclear. Allocation
and freeing of strings is in different functions. Sometimes
only every second string is free()d, because keys are not copied.
But this is done inconsistently. The caller has to know how
many parameters the callee may add.

Instead, let's add a small helper-struct that uses C++ memory
management, but exports a C-API. The array for the XML-library
is generated on the fly.

This is only the implementation, the old code is not yet replaced.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2020-10-17 16:29:32 +02:00 committed by Dirk Hohndel
parent ac3042b48b
commit b9b51ffd4e
4 changed files with 106 additions and 0 deletions

View file

@ -104,6 +104,7 @@ SOURCES += ../../subsurface-mobile-main.cpp \
../../core/uploadDiveShare.cpp \
../../core/uploadDiveLogsDE.cpp \
../../core/save-profiledata.c \
../../core/xmlparams.cpp \
../../core/settings/qPref.cpp \
../../core/settings/qPrefCloudStorage.cpp \
../../core/settings/qPrefDisplay.cpp \
@ -255,6 +256,7 @@ HEADERS += \
../../core/save-profiledata.h \
../../core/uploadDiveShare.h \
../../core/uploadDiveLogsDE.h \
../../core/xmlparams.h \
../../core/settings/qPref.h \
../../core/settings/qPrefCloudStorage.h \
../../core/settings/qPrefDisplay.h \