On Mon, Jul 13, 2015 at 1:58 PM, Linus Torvalds
<[email protected]> wrote:
>
> The problem is that "nr" is not necessarily 0 or 1, because we may
> have *previous* taxonomy data, and we keep potentially growing it.
So I'm testing the attached patch, but so far I haven't seen anything.
As mentioned, I'm not sure what triggers it.
Linus
divesitehelpers.cpp | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/divesitehelpers.cpp b/divesitehelpers.cpp
index 775951855925..dedc2a0477b1 100644
--- a/divesitehelpers.cpp
+++ b/divesitehelpers.cpp
@@ -152,11 +152,14 @@ void ReverseGeoLookupThread::run() {
if (oceanName["name"].isValid()) {
if (ds->taxonomy.category == NULL)
ds->taxonomy.category =
alloc_taxonomy();
- ds->taxonomy.category[ds->taxonomy.nr].category
= TC_OCEAN;
- ds->taxonomy.category[ds->taxonomy.nr].origin =
taxonomy::GEOCODED;
- ds->taxonomy.category[ds->taxonomy.nr].value =
copy_string(qPrintable(oceanName["name"].toString()));
- ds->taxonomy.nr++;
- mark_divelist_changed(true);
+ if (ds->taxonomy.nr < TC_NR_CATEGORIES) {
+
ds->taxonomy.category[ds->taxonomy.nr].category = TC_OCEAN;
+
ds->taxonomy.category[ds->taxonomy.nr].origin = taxonomy::GEOCODED;
+
ds->taxonomy.category[ds->taxonomy.nr].value =
copy_string(qPrintable(oceanName["name"].toString()));
+ ds->taxonomy.nr++;
+ mark_divelist_changed(true);
+ } else
+ qDebug() << "Too many taxonomies" <<
ds->taxonomy.nr << "\n";
}
} else {
report_error("timeout accessing geonames.org");
_______________________________________________
subsurface mailing list
[email protected]
http://lists.subsurface-divelog.org/cgi-bin/mailman/listinfo/subsurface