From 10e35c43008a6578a7eec79f65f071e7f9d2f280 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Wed, 29 Jul 2015 16:45:41 -0700 Subject: [PATCH 1/2] Fix memory leak when closing out tiles that had all features clipped away --- geojson.c | 13 +++++++++++++ tile.cc | 6 ++++++ 2 files changed, 19 insertions(+) diff --git a/geojson.c b/geojson.c index 46132ff..c8577ef 100644 --- a/geojson.c +++ b/geojson.c @@ -1,3 +1,7 @@ +#ifdef MEMTRACE + #include +#endif + #include #include #include @@ -1043,6 +1047,10 @@ int read_json(int argc, char **argv, char *fname, const char *layername, int max } int main(int argc, char **argv) { +#ifdef MTRACE + mtrace(); +#endif + extern int optind; extern char *optarg; int i; @@ -1190,5 +1198,10 @@ int main(int argc, char **argv) { ret = read_json(argc - optind, argv + optind, name ? name : outdir, layer, maxzoom, minzoom, outdb, &exclude, &include, exclude_all, droprate, buffer, tmpdir, gamma, prevent); mbtiles_close(outdb, argv); + +#ifdef MTRACE + muntrace(); +#endif + return ret; } diff --git a/tile.cc b/tile.cc index 0fba44f..ff20b9c 100644 --- a/tile.cc +++ b/tile.cc @@ -780,6 +780,12 @@ long long write_tile(char **geoms, char *metabase, char *stringpool, unsigned *f return count; } } else { + int i; + for (i = 0; i < nlayers; i++) { + pool_free(&keys1[i]); + pool_free(&values1[i]); + } + return count; } } From a51ddbe1809e034848147d4cab7000e97bb94c34 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Wed, 29 Jul 2015 16:46:56 -0700 Subject: [PATCH 2/2] Fix misspelling in ifdef --- geojson.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/geojson.c b/geojson.c index c8577ef..d65d61c 100644 --- a/geojson.c +++ b/geojson.c @@ -1,4 +1,4 @@ -#ifdef MEMTRACE +#ifdef MTRACE #include #endif