mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-28 13:10:19 +00:00
4fb01dd766
Each preferences object owns its string members. In three cases, pointers were copied instead of strings, leading to (in the best case) dangling pointers if the user edited values: 1) In the GET_TXT macro in core/prefs-macros.h 2) In the PreferencesDialog::defaultsRequested() method 3) In main() of the mobile version This patch fixes these issues, by using copy_string() or copy_prefs() as appropriate. The only reason that the old code didn't crash regularly is that the default_prefs object was only used at startup and defaultsRequested() is (at the moment?) dead code. This patch also aligns the backslashes in core/pref.h and fixes a typo. The declaration of copy_prefs() is moved to the core/prefs.h header. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
29 lines
486 B
C
29 lines
486 B
C
// SPDX-License-Identifier: GPL-2.0
|
|
#ifndef SUBSURFACESTARTUP_H
|
|
#define SUBSURFACESTARTUP_H
|
|
|
|
#include "dive.h"
|
|
#include "divelist.h"
|
|
#include "libdivecomputer.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#else
|
|
#include <stdbool.h>
|
|
#endif
|
|
|
|
extern bool imported;
|
|
|
|
void setup_system_prefs(void);
|
|
void parse_argument(const char *arg);
|
|
void free_prefs(void);
|
|
void print_files(void);
|
|
void print_version(void);
|
|
|
|
extern char *settings_suffix;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // SUBSURFACESTARTUP_H
|