mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
core: use C++-primitives for g_tag_list
The old code was leaking memory. Use std::unique_ptr<> for ownership management. This is still very primitive and divetags are kept during application lifetime. There should probably be some form of reference counting. And the taglist should not be global, but attached to the divelog. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
parent
b320942343
commit
556ecd5a9b
23 changed files with 92 additions and 125 deletions
|
@ -1502,7 +1502,7 @@ struct TagBinner : public StringBinner<TagBinner, StringBin> {
|
|||
std::vector<QString> to_bin_values(const dive *d) const {
|
||||
std::vector<QString> tags;
|
||||
for (const tag_entry *tag = d->tag_list; tag; tag = tag->next)
|
||||
tags.push_back(QString(tag->tag->name).trimmed());
|
||||
tags.push_back(QString::fromStdString(tag->tag->name).trimmed());
|
||||
return tags;
|
||||
}
|
||||
};
|
||||
|
@ -1513,7 +1513,7 @@ struct TagVariable : public StatsVariableTemplate<StatsVariable::Type::Discrete>
|
|||
return StatsTranslations::tr("Tags");
|
||||
}
|
||||
QString diveCategories(const dive *d) const override {
|
||||
return get_taglist_string(d->tag_list);
|
||||
return QString::fromStdString(taglist_get_tagstring(d->tag_list));
|
||||
}
|
||||
std::vector<const StatsBinner *> binners() const override {
|
||||
return { &tag_binner };
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue