From 1d636e5c0d5d067ad6f84977e0169059513d849a Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Wed, 25 May 2016 11:38:52 -0700 Subject: [PATCH] Consistently treat "prevent" and "additional" options as globals --- geojson.cpp | 3 --- main.cpp | 2 +- options.hpp | 3 +++ tile.cpp | 16 +++------------- tile.hpp | 4 ++-- 5 files changed, 9 insertions(+), 19 deletions(-) diff --git a/geojson.cpp b/geojson.cpp index 1da389d..4d1866a 100644 --- a/geojson.cpp +++ b/geojson.cpp @@ -46,9 +46,6 @@ extern "C" { #define GEOM_MULTIPOLYGON 5 /* array of arrays of arrays of arrays of positions */ #define GEOM_TYPES 6 -extern int prevent[256]; -extern int additional[256]; - static const char *geometry_names[GEOM_TYPES] = { "Point", "MultiPoint", "LineString", "MultiLineString", "Polygon", "MultiPolygon", }; diff --git a/main.cpp b/main.cpp index 15bbd2c..bcb7f49 100644 --- a/main.cpp +++ b/main.cpp @@ -1599,7 +1599,7 @@ int read_input(std::vector &sources, char *fname, const char *layername, } unsigned midx = 0, midy = 0; - int written = traverse_zooms(fd, size, meta, stringpool, &midx, &midy, layernames, maxzoom, minzoom, basezoom, outdb, droprate, buffer, fname, tmpdir, gamma, nlayers, prevent, additional, full_detail, low_detail, min_detail, meta_off, pool_off, initial_x, initial_y); + int written = traverse_zooms(fd, size, meta, stringpool, &midx, &midy, layernames, maxzoom, minzoom, basezoom, outdb, droprate, buffer, fname, tmpdir, gamma, nlayers, full_detail, low_detail, min_detail, meta_off, pool_off, initial_x, initial_y); if (maxzoom != written) { fprintf(stderr, "\n\n\n*** NOTE TILES ONLY COMPLETE THROUGH ZOOM %d ***\n\n\n", written); diff --git a/options.hpp b/options.hpp index 3928af5..d8c0a54 100644 --- a/options.hpp +++ b/options.hpp @@ -15,3 +15,6 @@ #define P_POLYGON_SPLIT ((int) 'p') #define P_CLIPPING ((int) 'c') #define P_DUPLICATION ((int) 'D') + +extern int prevent[256]; +extern int additional[256]; diff --git a/tile.cpp b/tile.cpp index 963be24..4909d1b 100644 --- a/tile.cpp +++ b/tile.cpp @@ -377,8 +377,6 @@ struct partial { std::vector keys; std::vector values; char *meta; - int *prevent; - int *additional; long long layer; long long original_seq; unsigned long long index; @@ -449,8 +447,6 @@ void *partial_feature_worker(void *v) { signed char t = (*partials)[i].t; int z = (*partials)[i].z; int line_detail = (*partials)[i].line_detail; - int *prevent = (*partials)[i].prevent; - int *additional = (*partials)[i].additional; int maxzoom = (*partials)[i].maxzoom; double area = 0; @@ -561,7 +557,7 @@ int manage_gap(unsigned long long index, unsigned long long *previndex, double s return 0; } -long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *stringpool, int z, unsigned tx, unsigned ty, int detail, int min_detail, int basezoom, std::vector *layernames, sqlite3 *outdb, double droprate, int buffer, const char *fname, FILE **geomfile, int minzoom, int maxzoom, double todo, volatile long long *along, double gamma, int nlayers, int *prevent, int *additional, int child_shards, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y, volatile int *running) { +long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *stringpool, int z, unsigned tx, unsigned ty, int detail, int min_detail, int basezoom, std::vector *layernames, sqlite3 *outdb, double droprate, int buffer, const char *fname, FILE **geomfile, int minzoom, int maxzoom, double todo, volatile long long *along, double gamma, int nlayers, int child_shards, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y, volatile int *running) { int line_detail; double fraction = 1; @@ -841,8 +837,6 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s p.reduced = reduced; p.z = z; p.line_detail = line_detail; - p.prevent = prevent; - p.additional = additional; p.maxzoom = maxzoom; p.keys = metakeys; p.values = metavals; @@ -1088,8 +1082,6 @@ struct write_tile_args { volatile long long *along; double gamma; int nlayers; - int *prevent; - int *additional; int child_shards; int *geomfd; off_t *geom_size; @@ -1146,7 +1138,7 @@ void *run_thread(void *vargs) { // fprintf(stderr, "%d/%u/%u\n", z, x, y); - long long len = write_tile(geom, &geompos, arg->metabase, arg->stringpool, z, x, y, z == arg->maxzoom ? arg->full_detail : arg->low_detail, arg->min_detail, arg->basezoom, arg->layernames, arg->outdb, arg->droprate, arg->buffer, arg->fname, arg->geomfile, arg->minzoom, arg->maxzoom, arg->todo, arg->along, arg->gamma, arg->nlayers, arg->prevent, arg->additional, arg->child_shards, arg->meta_off, arg->pool_off, arg->initial_x, arg->initial_y, arg->running); + long long len = write_tile(geom, &geompos, arg->metabase, arg->stringpool, z, x, y, z == arg->maxzoom ? arg->full_detail : arg->low_detail, arg->min_detail, arg->basezoom, arg->layernames, arg->outdb, arg->droprate, arg->buffer, arg->fname, arg->geomfile, arg->minzoom, arg->maxzoom, arg->todo, arg->along, arg->gamma, arg->nlayers, arg->child_shards, arg->meta_off, arg->pool_off, arg->initial_x, arg->initial_y, arg->running); if (len < 0) { int *err = &arg->err; @@ -1197,7 +1189,7 @@ void *run_thread(void *vargs) { return NULL; } -int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpool, unsigned *midx, unsigned *midy, std::vector &layernames, int maxzoom, int minzoom, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, const char *tmpdir, double gamma, int nlayers, int *prevent, int *additional, int full_detail, int low_detail, int min_detail, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y) { +int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpool, unsigned *midx, unsigned *midy, std::vector &layernames, int maxzoom, int minzoom, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, const char *tmpdir, double gamma, int nlayers, int full_detail, int low_detail, int min_detail, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y) { int i; for (i = 0; i <= maxzoom; i++) { long long most = 0; @@ -1317,8 +1309,6 @@ int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpo args[thread].along = &along; // locked with var_lock args[thread].gamma = gamma; args[thread].nlayers = nlayers; - args[thread].prevent = prevent; - args[thread].additional = additional; args[thread].child_shards = TEMP_FILES / threads; args[thread].geomfd = geomfd; diff --git a/tile.hpp b/tile.hpp index 144f0a6..e19b837 100644 --- a/tile.hpp +++ b/tile.hpp @@ -1,5 +1,5 @@ -long long write_tile(char **geom, char *metabase, char *stringpool, unsigned *file_bbox, int z, unsigned x, unsigned y, int detail, int min_detail, int basezoom, char **layernames, sqlite3 *outdb, double droprate, int buffer, const char *fname, FILE **geomfile, int file_minzoom, int file_maxzoom, double todo, char *geomstart, long long along, double gamma, int nlayers, int *prevent, int *additional); +long long write_tile(char **geom, char *metabase, char *stringpool, unsigned *file_bbox, int z, unsigned x, unsigned y, int detail, int min_detail, int basezoom, char **layernames, sqlite3 *outdb, double droprate, int buffer, const char *fname, FILE **geomfile, int file_minzoom, int file_maxzoom, double todo, char *geomstart, long long along, double gamma, int nlayers); -int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpool, unsigned *midx, unsigned *midy, std::vector &layernames, int maxzoom, int minzoom, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, const char *tmpdir, double gamma, int nlayers, int *prevent, int *additional, int full_detail, int low_detail, int min_detail, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y); +int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpool, unsigned *midx, unsigned *midy, std::vector &layernames, int maxzoom, int minzoom, int basezoom, sqlite3 *outdb, double droprate, int buffer, const char *fname, const char *tmpdir, double gamma, int nlayers, int full_detail, int low_detail, int min_detail, long long *meta_off, long long *pool_off, unsigned *initial_x, unsigned *initial_y); int manage_gap(unsigned long long index, unsigned long long *previndex, double scale, double gamma, double *gap);