core: default initialize units-type objects to 0

Makes the code much nicer to read.

Default initialize cylinder_t to the empty cylinder.

This produces lots of warnings, because most structure are now
not PODs anymore and shouldn't be erased using memset().

These memset()s will be removed one-by-one and replaced by
proper constructors.

The whole ordeal made it necessary to add a constructor to
struct event. To simplify things the whole optimization of
the variable-size event names was removed. In upcoming commits
this will be replaced by std::string anyway.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2024-05-04 19:15:47 +02:00 committed by bstoeger
parent b82fdd1d20
commit 408b31b6ce
34 changed files with 128 additions and 148 deletions

View file

@ -434,7 +434,7 @@ static void parse_cylinder_keyvalue(void *_cylinder, const char *key, const std:
static void parse_dive_cylinder(char *line, struct git_parser_state *state)
{
cylinder_t cylinder = empty_cylinder;
cylinder_t cylinder;
for (;;) {
char c;
@ -795,7 +795,7 @@ static int get_divemode(const char *divemodestring) {
struct parse_event {
std::string name;
int has_divemode = false;
struct event ev = { 0 };
struct event ev;
};
static void parse_event_keyvalue(void *_parse, const char *key, const std::string &value)