diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2020-09-05 13:30:04 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2020-09-06 12:59:54 -0700 |
commit | 55e42373066ade9ad2e1a51adf27a0a28cb0d02a (patch) | |
tree | e761e994b0584e647522108f15ecf705c45f1055 | |
parent | 6da78a29c4bcd42b93ef0044ec5e005f2ff93e0f (diff) | |
download | subsurface-55e42373066ade9ad2e1a51adf27a0a28cb0d02a.tar.gz |
cleanup: copy string in taxonomy_set_[country|category]
These functions were taking a const char *, yet taking ownership
of the value. Moreover, taking ownership of strings is rather
unusual in C-style APIs. Let's copy the string instead.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
-rw-r--r-- | commands/command_divesite.cpp | 2 | ||||
-rw-r--r-- | core/taxonomy.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/commands/command_divesite.cpp b/commands/command_divesite.cpp index 6f558d408..39e10e840 100644 --- a/commands/command_divesite.cpp +++ b/commands/command_divesite.cpp @@ -268,7 +268,7 @@ bool EditDiveSiteCountry::workToBeDone() void EditDiveSiteCountry::redo() { QString old = taxonomy_get_country(&ds->taxonomy); - taxonomy_set_country(&ds->taxonomy, copy_qstring(value), taxonomy_origin::GEOMANUAL); + taxonomy_set_country(&ds->taxonomy, qPrintable(value), taxonomy_origin::GEOMANUAL); value = old; emit diveListNotifier.diveSiteChanged(ds, LocationInformationModel::TAXONOMY); // Inform frontend of changed dive site. } diff --git a/core/taxonomy.c b/core/taxonomy.c index 45989e6c7..15086d28d 100644 --- a/core/taxonomy.c +++ b/core/taxonomy.c @@ -105,7 +105,7 @@ void taxonomy_set_category(struct taxonomy_data *t, enum taxonomy_category categ } idx = t->nr++; } - t->category[idx].value = value; + t->category[idx].value = strdup(value); t->category[idx].origin = origin; t->category[idx].category = category; } |