core: port errorhelper.c to C++

Use the C++-version of membuffer.

This fixes two memory leaks: report_info() on every(!) invocation
and report_error() before the error callback is set.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2024-03-24 19:21:00 +01:00 committed by bstoeger
parent ec0bc2d06c
commit b097c0a44f
3 changed files with 4 additions and 5 deletions

View file

@ -33,7 +33,7 @@ SOURCES += subsurface-mobile-main.cpp \
core/configuredivecomputer.cpp \
core/divelogexportlogic.cpp \
core/divesitehelpers.cpp \
core/errorhelper.c \
core/errorhelper.cpp \
core/exif.cpp \
core/format.cpp \
core/gettextfromc.cpp \

View file

@ -85,7 +85,7 @@ set(SUBSURFACE_CORE_LIB_SRCS
eventtype.h
equipment.c
equipment.h
errorhelper.c
errorhelper.cpp
exif.cpp
exif.h
extradata.h

View file

@ -6,7 +6,6 @@
#include <stdarg.h>
#include "errorhelper.h"
#include "membuffer.h"
#include "qthelper.h"
#if !defined(Q_OS_ANDROID) && !defined(__ANDROID__)
#define LOG_MSG(fmt, ...) fprintf(stderr, fmt, ##__VA_ARGS__)
@ -21,7 +20,7 @@ int verbose;
void report_info(const char *fmt, ...)
{
struct membuffer buf = { 0 };
struct membufferpp buf;
VA_BUF(&buf, fmt);
strip_mb(&buf);
@ -32,7 +31,7 @@ static void (*error_cb)(char *) = NULL;
int report_error(const char *fmt, ...)
{
struct membuffer buf = { 0 };
struct membufferpp buf;
VA_BUF(&buf, fmt);
strip_mb(&buf);