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

View File

@ -9,7 +9,7 @@ CXX := $(CXX)
CFLAGS := $(CFLAGS)
CXXFLAGS := $(CXXFLAGS) -std=c++11
LDFLAGS := $(LDFLAGS)
WARNING_FLAGS := -Wall -Wshadow
WARNING_FLAGS := -Wall -Wshadow -Wabsolute-value -Wsign-compare
RELEASE_FLAGS := -O3 -DNDEBUG
DEBUG_FLAGS := -O0 -DDEBUG -fno-inline-functions -fno-omit-frame-pointer

View File

@ -67,8 +67,8 @@ struct source {
std::string file;
};
int CPUS;
int TEMP_FILES;
size_t CPUS;
size_t TEMP_FILES;
long long MAX_FILES;
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;
}
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;
for (size_t i = 0; i < nmerges; i++) {
@ -312,7 +312,7 @@ struct sort_arg {
long long indexpos;
struct mergelist *merges;
int indexfd;
int nmerges;
size_t nmerges;
long long unit;
int bytes;
};
@ -367,8 +367,7 @@ void do_read_parallel(char *map, long long len, long long initial_offset, const
segs[0] = 0;
segs[CPUS] = len;
int i;
for (i = 1; i < CPUS; i++) {
for (size_t i = 1; i < CPUS; i++) {
segs[i] = len * i / CPUS;
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];
for (i = 0; i < CPUS; i++) {
for (size_t i = 0; i < CPUS; i++) {
// To preserve feature ordering, unique id for each segment
// begins with that segment's offset into the input
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];
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>());
}
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].reading = reading;
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;
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;
int nmerges = (indexpos + unit - 1) / unit;
size_t nmerges = (indexpos + unit - 1) / unit;
struct mergelist merges[nmerges];
int a;
for (a = 0; a < nmerges; a++) {
for (size_t a = 0; a < nmerges; a++) {
merges[a].start = merges[a].end = 0;
}
pthread_t pthreads[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].cpus = CPUS;
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;
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;
struct reader reader[CPUS];
int i;
for (i = 0; i < CPUS; i++) {
for (size_t i = 0; i < CPUS; i++) {
struct reader *r = reader + i;
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];
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;
}
@ -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);
}
for (i = 0; i < CPUS; i++) {
for (size_t i = 0; i < CPUS; i++) {
if (fclose(reader[i].metafile) != 0) {
perror("fclose meta");
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 poolpos = 0;
for (i = 0; i < CPUS; i++) {
for (size_t i = 0; i < CPUS; i++) {
if (reader[i].metapos > 0) {
void *map = mmap(NULL, reader[i].metapos, PROT_READ, MAP_PRIVATE, reader[i].metafd, 0);
if (map == MAP_FAILED) {
@ -1718,8 +1715,7 @@ int read_input(std::vector<source> &sources, char *fname, const char *layername,
fd[0] = geomfd;
size[0] = geomst.st_size;
int j;
for (j = 1; j < TEMP_FILES; j++) {
for (size_t j = 1; j < TEMP_FILES; j++) {
fd[j] = -1;
size[j] = 0;
}
@ -1760,7 +1756,7 @@ int read_input(std::vector<source> &sources, char *fname, const char *layername,
midlon = (maxlon + minlon) / 2;
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]) {
file_bbox[0] = reader[i].file_bbox[0];
}

View File

@ -12,5 +12,5 @@ void checkdisk(struct reader *r, int nreader);
extern int geometry_scale;
extern int quiet;
extern int CPUS;
extern int TEMP_FILES;
extern size_t CPUS;
extern size_t TEMP_FILES;

View File

@ -236,8 +236,7 @@ void mbtiles_write_metadata(sqlite3 *outdb, const char *fname, int minzoom, int
lnames.push_back(ai->first);
}
int i;
for (i = 0; i < lnames.size(); i++) {
for (size_t i = 0; i < lnames.size(); i++) {
if (i != 0) {
aprintf(&buf, ", ");
}

View File

@ -7,7 +7,7 @@
*/
std::string check_utf8(std::string s) {
for (size_t i = 0; i < s.size(); i++) {
int fail = 0;
size_t fail = 0;
if ((s[i] & 0x80) == 0x80) {
if ((s[i] & 0xE0) == 0xC0) {

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++) {
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]);
}
@ -1667,10 +1667,9 @@ int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpo
FILE *sub[TEMP_FILES];
int subfd[TEMP_FILES];
int j;
for (j = 0; j < TEMP_FILES; j++) {
for (size_t j = 0; j < TEMP_FILES; j++) {
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);
// printf("%s\n", geomname);
if (subfd[j] < 0) {
@ -1685,17 +1684,17 @@ int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpo
unlink(geomname);
}
int useful_threads = 0;
size_t useful_threads = 0;
long long todo = 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];
if (geom_size[j] > 0) {
useful_threads++;
}
}
int threads = CPUS;
size_t threads = CPUS;
if (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;
} dispatches[threads];
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].todo = 0;
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) {
continue;
}
@ -1764,8 +1763,7 @@ int traverse_zooms(int *geomfd, off_t *geom_size, char *metabase, char *stringpo
write_tile_args args[threads];
int running = threads;
int thread;
for (thread = 0; thread < threads; thread++) {
for (size_t thread = 0; thread < threads; thread++) {
args[thread].metabase = metabase;
args[thread].stringpool = stringpool;
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;
for (thread = 0; thread < threads; thread++) {
for (size_t thread = 0; thread < threads; thread++) {
void *retval;
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
if (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 (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
if (geomfd[j] >= 0) {
if (close(geomfd[j]) != 0) {