Fix some compiler warnings about signed comparisons

This commit is contained in:
Eric Fischer
2016-10-14 17:11:57 -07:00
parent eb1c64db27
commit 92cc08a554
6 changed files with 36 additions and 44 deletions
+1 -1
View File
@@ -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
+19 -23
View File
@@ -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];
} }
+2 -2
View File
@@ -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
View File
@@ -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, ", ");
} }
+1 -1
View File
@@ -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) {
+12 -15
View File
@@ -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) {