mirror of
https://github.com/felt/tippecanoe.git
synced 2026-10-02 08:25:40 +02:00
Fix some compiler warnings about signed comparisons
This commit is contained in:
@@ -9,7 +9,7 @@ CXX := $(CXX)
|
|||||||
CFLAGS := $(CFLAGS)
|
CFLAGS := $(CFLAGS)
|
||||||
CXXFLAGS := $(CXXFLAGS) -std=c++11
|
CXXFLAGS := $(CXXFLAGS) -std=c++11
|
||||||
LDFLAGS := $(LDFLAGS)
|
LDFLAGS := $(LDFLAGS)
|
||||||
WARNING_FLAGS := -Wall -Wshadow
|
WARNING_FLAGS := -Wall -Wshadow -Wabsolute-value -Wsign-compare
|
||||||
RELEASE_FLAGS := -O3 -DNDEBUG
|
RELEASE_FLAGS := -O3 -DNDEBUG
|
||||||
DEBUG_FLAGS := -O0 -DDEBUG -fno-inline-functions -fno-omit-frame-pointer
|
DEBUG_FLAGS := -O0 -DDEBUG -fno-inline-functions -fno-omit-frame-pointer
|
||||||
|
|
||||||
|
|||||||
@@ -67,8 +67,8 @@ struct source {
|
|||||||
std::string file;
|
std::string file;
|
||||||
};
|
};
|
||||||
|
|
||||||
int CPUS;
|
size_t CPUS;
|
||||||
int TEMP_FILES;
|
size_t TEMP_FILES;
|
||||||
long long MAX_FILES;
|
long long MAX_FILES;
|
||||||
static long long diskfree;
|
static long long diskfree;
|
||||||
|
|
||||||
@@ -267,7 +267,7 @@ int calc_feature_minzoom(struct index *ix, struct drop_state *ds, int maxzoom, i
|
|||||||
return feature_minzoom;
|
return feature_minzoom;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void merge(struct mergelist *merges, int nmerges, unsigned char *map, FILE *indexfile, int bytes, long long nrec, char *geom_map, FILE *geom_out, long long *geompos, long long *progress, long long *progress_max, long long *progress_reported, int maxzoom, int basezoom, double droprate, double gamma, struct drop_state *ds) {
|
static void merge(struct mergelist *merges, size_t nmerges, unsigned char *map, FILE *indexfile, int bytes, long long nrec, char *geom_map, FILE *geom_out, long long *geompos, long long *progress, long long *progress_max, long long *progress_reported, int maxzoom, int basezoom, double droprate, double gamma, struct drop_state *ds) {
|
||||||
struct mergelist *head = NULL;
|
struct mergelist *head = NULL;
|
||||||
|
|
||||||
for (size_t i = 0; i < nmerges; i++) {
|
for (size_t i = 0; i < nmerges; i++) {
|
||||||
@@ -312,7 +312,7 @@ struct sort_arg {
|
|||||||
long long indexpos;
|
long long indexpos;
|
||||||
struct mergelist *merges;
|
struct mergelist *merges;
|
||||||
int indexfd;
|
int indexfd;
|
||||||
int nmerges;
|
size_t nmerges;
|
||||||
long long unit;
|
long long unit;
|
||||||
int bytes;
|
int bytes;
|
||||||
};
|
};
|
||||||
@@ -367,8 +367,7 @@ void do_read_parallel(char *map, long long len, long long initial_offset, const
|
|||||||
segs[0] = 0;
|
segs[0] = 0;
|
||||||
segs[CPUS] = len;
|
segs[CPUS] = len;
|
||||||
|
|
||||||
int i;
|
for (size_t i = 1; i < CPUS; i++) {
|
||||||
for (i = 1; i < CPUS; i++) {
|
|
||||||
segs[i] = len * i / CPUS;
|
segs[i] = len * i / CPUS;
|
||||||
|
|
||||||
while (segs[i] < len && map[segs[i]] != '\n') {
|
while (segs[i] < len && map[segs[i]] != '\n') {
|
||||||
@@ -377,7 +376,7 @@ void do_read_parallel(char *map, long long len, long long initial_offset, const
|
|||||||
}
|
}
|
||||||
|
|
||||||
volatile long long layer_seq[CPUS];
|
volatile long long layer_seq[CPUS];
|
||||||
for (i = 0; i < CPUS; i++) {
|
for (size_t i = 0; i < CPUS; i++) {
|
||||||
// To preserve feature ordering, unique id for each segment
|
// To preserve feature ordering, unique id for each segment
|
||||||
// begins with that segment's offset into the input
|
// begins with that segment's offset into the input
|
||||||
layer_seq[i] = segs[i] + initial_offset;
|
layer_seq[i] = segs[i] + initial_offset;
|
||||||
@@ -387,11 +386,11 @@ void do_read_parallel(char *map, long long len, long long initial_offset, const
|
|||||||
pthread_t pthreads[CPUS];
|
pthread_t pthreads[CPUS];
|
||||||
std::vector<std::set<type_and_string> > file_subkeys;
|
std::vector<std::set<type_and_string> > file_subkeys;
|
||||||
|
|
||||||
for (i = 0; i < CPUS; i++) {
|
for (size_t i = 0; i < CPUS; i++) {
|
||||||
file_subkeys.push_back(std::set<type_and_string>());
|
file_subkeys.push_back(std::set<type_and_string>());
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < CPUS; i++) {
|
for (size_t i = 0; i < CPUS; i++) {
|
||||||
pja[i].jp = json_begin_map(map + segs[i], segs[i + 1] - segs[i]);
|
pja[i].jp = json_begin_map(map + segs[i], segs[i + 1] - segs[i]);
|
||||||
pja[i].reading = reading;
|
pja[i].reading = reading;
|
||||||
pja[i].layer_seq = &layer_seq[i];
|
pja[i].layer_seq = &layer_seq[i];
|
||||||
@@ -427,7 +426,7 @@ void do_read_parallel(char *map, long long len, long long initial_offset, const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < CPUS; i++) {
|
for (size_t i = 0; i < CPUS; i++) {
|
||||||
void *retval;
|
void *retval;
|
||||||
|
|
||||||
if (pthread_join(pthreads[i], &retval) != 0) {
|
if (pthread_join(pthreads[i], &retval) != 0) {
|
||||||
@@ -706,18 +705,17 @@ void radix1(int *geomfds_in, int *indexfds_in, int inputs, int prefix, int split
|
|||||||
}
|
}
|
||||||
unit = ((unit + page - 1) / page) * page;
|
unit = ((unit + page - 1) / page) * page;
|
||||||
|
|
||||||
int nmerges = (indexpos + unit - 1) / unit;
|
size_t nmerges = (indexpos + unit - 1) / unit;
|
||||||
struct mergelist merges[nmerges];
|
struct mergelist merges[nmerges];
|
||||||
|
|
||||||
int a;
|
for (size_t a = 0; a < nmerges; a++) {
|
||||||
for (a = 0; a < nmerges; a++) {
|
|
||||||
merges[a].start = merges[a].end = 0;
|
merges[a].start = merges[a].end = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
pthread_t pthreads[CPUS];
|
pthread_t pthreads[CPUS];
|
||||||
struct sort_arg args[CPUS];
|
struct sort_arg args[CPUS];
|
||||||
|
|
||||||
for (a = 0; a < CPUS; a++) {
|
for (size_t a = 0; a < CPUS; a++) {
|
||||||
args[a].task = a;
|
args[a].task = a;
|
||||||
args[a].cpus = CPUS;
|
args[a].cpus = CPUS;
|
||||||
args[a].indexpos = indexpos;
|
args[a].indexpos = indexpos;
|
||||||
@@ -733,7 +731,7 @@ void radix1(int *geomfds_in, int *indexfds_in, int inputs, int prefix, int split
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (a = 0; a < CPUS; a++) {
|
for (size_t a = 0; a < CPUS; a++) {
|
||||||
void *retval;
|
void *retval;
|
||||||
|
|
||||||
if (pthread_join(pthreads[a], &retval) != 0) {
|
if (pthread_join(pthreads[a], &retval) != 0) {
|
||||||
@@ -945,8 +943,7 @@ int read_input(std::vector<source> &sources, char *fname, const char *layername,
|
|||||||
int ret = EXIT_SUCCESS;
|
int ret = EXIT_SUCCESS;
|
||||||
|
|
||||||
struct reader reader[CPUS];
|
struct reader reader[CPUS];
|
||||||
int i;
|
for (size_t i = 0; i < CPUS; i++) {
|
||||||
for (i = 0; i < CPUS; i++) {
|
|
||||||
struct reader *r = reader + i;
|
struct reader *r = reader + i;
|
||||||
|
|
||||||
char metaname[strlen(tmpdir) + strlen("/meta.XXXXXXXX") + 1];
|
char metaname[strlen(tmpdir) + strlen("/meta.XXXXXXXX") + 1];
|
||||||
@@ -1045,7 +1042,7 @@ int read_input(std::vector<source> &sources, char *fname, const char *layername,
|
|||||||
|
|
||||||
int initialized[CPUS];
|
int initialized[CPUS];
|
||||||
unsigned initial_x[CPUS], initial_y[CPUS];
|
unsigned initial_x[CPUS], initial_y[CPUS];
|
||||||
for (i = 0; i < CPUS; i++) {
|
for (size_t i = 0; i < CPUS; i++) {
|
||||||
initialized[i] = initial_x[i] = initial_y[i] = 0;
|
initialized[i] = initial_x[i] = initial_y[i] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1298,7 +1295,7 @@ int read_input(std::vector<source> &sources, char *fname, const char *layername,
|
|||||||
// (stderr, "Read 10000.00 million features\r", *progress_seq / 1000000.0);
|
// (stderr, "Read 10000.00 million features\r", *progress_seq / 1000000.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < CPUS; i++) {
|
for (size_t i = 0; i < CPUS; i++) {
|
||||||
if (fclose(reader[i].metafile) != 0) {
|
if (fclose(reader[i].metafile) != 0) {
|
||||||
perror("fclose meta");
|
perror("fclose meta");
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
@@ -1367,7 +1364,7 @@ int read_input(std::vector<source> &sources, char *fname, const char *layername,
|
|||||||
long long metapos = 0;
|
long long metapos = 0;
|
||||||
long long poolpos = 0;
|
long long poolpos = 0;
|
||||||
|
|
||||||
for (i = 0; i < CPUS; i++) {
|
for (size_t i = 0; i < CPUS; i++) {
|
||||||
if (reader[i].metapos > 0) {
|
if (reader[i].metapos > 0) {
|
||||||
void *map = mmap(NULL, reader[i].metapos, PROT_READ, MAP_PRIVATE, reader[i].metafd, 0);
|
void *map = mmap(NULL, reader[i].metapos, PROT_READ, MAP_PRIVATE, reader[i].metafd, 0);
|
||||||
if (map == MAP_FAILED) {
|
if (map == MAP_FAILED) {
|
||||||
@@ -1718,8 +1715,7 @@ int read_input(std::vector<source> &sources, char *fname, const char *layername,
|
|||||||
fd[0] = geomfd;
|
fd[0] = geomfd;
|
||||||
size[0] = geomst.st_size;
|
size[0] = geomst.st_size;
|
||||||
|
|
||||||
int j;
|
for (size_t j = 1; j < TEMP_FILES; j++) {
|
||||||
for (j = 1; j < TEMP_FILES; j++) {
|
|
||||||
fd[j] = -1;
|
fd[j] = -1;
|
||||||
size[j] = 0;
|
size[j] = 0;
|
||||||
}
|
}
|
||||||
@@ -1760,7 +1756,7 @@ int read_input(std::vector<source> &sources, char *fname, const char *layername,
|
|||||||
midlon = (maxlon + minlon) / 2;
|
midlon = (maxlon + minlon) / 2;
|
||||||
|
|
||||||
long long file_bbox[4] = {UINT_MAX, UINT_MAX, 0, 0};
|
long long file_bbox[4] = {UINT_MAX, UINT_MAX, 0, 0};
|
||||||
for (i = 0; i < CPUS; i++) {
|
for (size_t i = 0; i < CPUS; i++) {
|
||||||
if (reader[i].file_bbox[0] < file_bbox[0]) {
|
if (reader[i].file_bbox[0] < file_bbox[0]) {
|
||||||
file_bbox[0] = reader[i].file_bbox[0];
|
file_bbox[0] = reader[i].file_bbox[0];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,5 +12,5 @@ void checkdisk(struct reader *r, int nreader);
|
|||||||
extern int geometry_scale;
|
extern int geometry_scale;
|
||||||
extern int quiet;
|
extern int quiet;
|
||||||
|
|
||||||
extern int CPUS;
|
extern size_t CPUS;
|
||||||
extern int TEMP_FILES;
|
extern size_t TEMP_FILES;
|
||||||
|
|||||||
+1
-2
@@ -236,8 +236,7 @@ void mbtiles_write_metadata(sqlite3 *outdb, const char *fname, int minzoom, int
|
|||||||
lnames.push_back(ai->first);
|
lnames.push_back(ai->first);
|
||||||
}
|
}
|
||||||
|
|
||||||
int i;
|
for (size_t i = 0; i < lnames.size(); i++) {
|
||||||
for (i = 0; i < lnames.size(); i++) {
|
|
||||||
if (i != 0) {
|
if (i != 0) {
|
||||||
aprintf(&buf, ", ");
|
aprintf(&buf, ", ");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
std::string check_utf8(std::string s) {
|
std::string check_utf8(std::string s) {
|
||||||
for (size_t i = 0; i < s.size(); i++) {
|
for (size_t i = 0; i < s.size(); i++) {
|
||||||
int fail = 0;
|
size_t fail = 0;
|
||||||
|
|
||||||
if ((s[i] & 0x80) == 0x80) {
|
if ((s[i] & 0x80) == 0x80) {
|
||||||
if ((s[i] & 0xE0) == 0xC0) {
|
if ((s[i] & 0xE0) == 0xC0) {
|
||||||
|
|||||||
@@ -826,7 +826,7 @@ void find_common_edges(std::vector<partial> &partials, int z, int line_detail, d
|
|||||||
for (size_t m = necessary; m < l - 1; m++) {
|
for (size_t m = necessary; m < l - 1; m++) {
|
||||||
tmp.push_back(g[m]);
|
tmp.push_back(g[m]);
|
||||||
}
|
}
|
||||||
for (size_t m = k; m < necessary; m++) {
|
for (ssize_t m = k; m < necessary; m++) {
|
||||||
tmp.push_back(g[m]);
|
tmp.push_back(g[m]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1667,10 +1667,9 @@ int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpo
|
|||||||
|
|
||||||
FILE *sub[TEMP_FILES];
|
FILE *sub[TEMP_FILES];
|
||||||
int subfd[TEMP_FILES];
|
int subfd[TEMP_FILES];
|
||||||
int j;
|
for (size_t j = 0; j < TEMP_FILES; j++) {
|
||||||
for (j = 0; j < TEMP_FILES; j++) {
|
|
||||||
char geomname[strlen(tmpdir) + strlen("/geom.XXXXXXXX" XSTRINGIFY(INT_MAX)) + 1];
|
char geomname[strlen(tmpdir) + strlen("/geom.XXXXXXXX" XSTRINGIFY(INT_MAX)) + 1];
|
||||||
sprintf(geomname, "%s/geom%d.XXXXXXXX", tmpdir, j);
|
sprintf(geomname, "%s/geom%zu.XXXXXXXX", tmpdir, j);
|
||||||
subfd[j] = mkstemp(geomname);
|
subfd[j] = mkstemp(geomname);
|
||||||
// printf("%s\n", geomname);
|
// printf("%s\n", geomname);
|
||||||
if (subfd[j] < 0) {
|
if (subfd[j] < 0) {
|
||||||
@@ -1685,17 +1684,17 @@ int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpo
|
|||||||
unlink(geomname);
|
unlink(geomname);
|
||||||
}
|
}
|
||||||
|
|
||||||
int useful_threads = 0;
|
size_t useful_threads = 0;
|
||||||
long long todo = 0;
|
long long todo = 0;
|
||||||
long long along = 0;
|
long long along = 0;
|
||||||
for (j = 0; j < TEMP_FILES; j++) {
|
for (size_t j = 0; j < TEMP_FILES; j++) {
|
||||||
todo += geom_size[j];
|
todo += geom_size[j];
|
||||||
if (geom_size[j] > 0) {
|
if (geom_size[j] > 0) {
|
||||||
useful_threads++;
|
useful_threads++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int threads = CPUS;
|
size_t threads = CPUS;
|
||||||
if (threads > TEMP_FILES / 4) {
|
if (threads > TEMP_FILES / 4) {
|
||||||
threads = TEMP_FILES / 4;
|
threads = TEMP_FILES / 4;
|
||||||
}
|
}
|
||||||
@@ -1726,7 +1725,7 @@ int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpo
|
|||||||
struct dispatch *next;
|
struct dispatch *next;
|
||||||
} dispatches[threads];
|
} dispatches[threads];
|
||||||
struct dispatch *dispatch_head = &dispatches[0];
|
struct dispatch *dispatch_head = &dispatches[0];
|
||||||
for (j = 0; j < threads; j++) {
|
for (size_t j = 0; j < threads; j++) {
|
||||||
dispatches[j].tasks = NULL;
|
dispatches[j].tasks = NULL;
|
||||||
dispatches[j].todo = 0;
|
dispatches[j].todo = 0;
|
||||||
if (j + 1 < threads) {
|
if (j + 1 < threads) {
|
||||||
@@ -1736,7 +1735,7 @@ int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (j = 0; j < TEMP_FILES; j++) {
|
for (size_t j = 0; j < TEMP_FILES; j++) {
|
||||||
if (geom_size[j] == 0) {
|
if (geom_size[j] == 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -1764,8 +1763,7 @@ int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpo
|
|||||||
write_tile_args args[threads];
|
write_tile_args args[threads];
|
||||||
int running = threads;
|
int running = threads;
|
||||||
|
|
||||||
int thread;
|
for (size_t thread = 0; thread < threads; thread++) {
|
||||||
for (thread = 0; thread < threads; thread++) {
|
|
||||||
args[thread].metabase = metabase;
|
args[thread].metabase = metabase;
|
||||||
args[thread].stringpool = stringpool;
|
args[thread].stringpool = stringpool;
|
||||||
args[thread].min_detail = min_detail;
|
args[thread].min_detail = min_detail;
|
||||||
@@ -1808,7 +1806,7 @@ int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpo
|
|||||||
|
|
||||||
int err = INT_MAX;
|
int err = INT_MAX;
|
||||||
|
|
||||||
for (thread = 0; thread < threads; thread++) {
|
for (size_t thread = 0; thread < threads; thread++) {
|
||||||
void *retval;
|
void *retval;
|
||||||
|
|
||||||
if (pthread_join(pthreads[thread], &retval) != 0) {
|
if (pthread_join(pthreads[thread], &retval) != 0) {
|
||||||
@@ -1820,7 +1818,7 @@ int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (j = 0; j < TEMP_FILES; j++) {
|
for (size_t j = 0; j < TEMP_FILES; j++) {
|
||||||
// Can be < 0 if there is only one source file, at z0
|
// Can be < 0 if there is only one source file, at z0
|
||||||
if (geomfd[j] >= 0) {
|
if (geomfd[j] >= 0) {
|
||||||
if (close(geomfd[j]) != 0) {
|
if (close(geomfd[j]) != 0) {
|
||||||
@@ -1848,8 +1846,7 @@ int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpo
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int j;
|
for (size_t j = 0; j < TEMP_FILES; j++) {
|
||||||
for (j = 0; j < TEMP_FILES; j++) {
|
|
||||||
// Can be < 0 if there is only one source file, at z0
|
// Can be < 0 if there is only one source file, at z0
|
||||||
if (geomfd[j] >= 0) {
|
if (geomfd[j] >= 0) {
|
||||||
if (close(geomfd[j]) != 0) {
|
if (close(geomfd[j]) != 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user