From 069807caf4e2a55aa31d298614be185095f03153 Mon Sep 17 00:00:00 2001 From: Eric Fischer Date: Fri, 10 Nov 2017 13:06:47 -0800 Subject: [PATCH] Use a proper constructor, discover two unused fields --- geojson.hpp | 14 ++++++++------ main.cpp | 13 +++++++------ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/geojson.hpp b/geojson.hpp index 1efa164..664ea2e 100644 --- a/geojson.hpp +++ b/geojson.hpp @@ -10,13 +10,15 @@ #include "serial.hpp" struct parse_json_args { - json_pull *jp = NULL; - int layer = 0; - std::string *layername = NULL; - std::map const *attribute_types = NULL; - bool want_dist = false; + json_pull *jp; + int layer; + std::string *layername; - struct serialization_state *sst = NULL; + struct serialization_state *sst; + + parse_json_args(json_pull *jp1, int layer1, std::string *layername1, struct serialization_state *sst1) + : jp(jp1), layer(layer1), layername(layername1), sst(sst1) { + } }; struct json_pull *json_begin_map(char *map, long long len); diff --git a/main.cpp b/main.cpp index 1fdbb48..e12b88a 100644 --- a/main.cpp +++ b/main.cpp @@ -374,7 +374,6 @@ void do_read_parallel(char *map, long long len, long long initial_offset, const } std::vector pja; - pja.resize(CPUS); std::vector sst; sst.resize(CPUS); @@ -410,12 +409,14 @@ void do_read_parallel(char *map, long long len, long long initial_offset, const sst[i].basezoom = basezoom; sst[i].attribute_types = attribute_types; - pja[i].jp = json_begin_map(map + segs[i], segs[i + 1] - segs[i]); - pja[i].layer = source; - pja[i].layername = &layername; - - pja[i].sst = &sst[i]; + pja.push_back(parse_json_args( + json_begin_map(map + segs[i], segs[i + 1] - segs[i]), + source, + &layername, + &sst[i])); + } + for (size_t i = 0; i < CPUS; i++) { if (pthread_create(&pthreads[i], NULL, run_parse_json, &pja[i]) != 0) { perror("pthread_create"); exit(EXIT_FAILURE);