@@ -207,10 +207,13 @@ prepare_input_files(std::vector<std::string> const &input_files,
207207class input_context_t
208208{
209209public:
210- input_context_t (osmdata_t & osmdata, progress_display_t & progress,
210+ input_context_t (osmdata_t * osmdata, progress_display_t * progress,
211211 bool append)
212212 : m_osmdata(osmdata), m_progress(progress), m_append(append)
213- {}
213+ {
214+ assert (osmdata);
215+ assert (progress);
216+ }
214217
215218 void apply (osmium::OSMObject &object)
216219 {
@@ -221,46 +224,46 @@ class input_context_t
221224
222225 if (m_last_type != object.type ()) {
223226 if (m_last_type == osmium::item_type::node) {
224- m_osmdata. after_nodes ();
225- m_progress. start_way_counter ();
227+ m_osmdata-> after_nodes ();
228+ m_progress-> start_way_counter ();
226229 }
227230 if (object.type () == osmium::item_type::relation) {
228- m_osmdata. after_ways ();
229- m_progress. start_relation_counter ();
231+ m_osmdata-> after_ways ();
232+ m_progress-> start_relation_counter ();
230233 }
231234 m_last_type = object.type ();
232235 }
233236
234- osmium::apply_item (object, m_osmdata, m_progress);
237+ osmium::apply_item (object, * m_osmdata, * m_progress);
235238 }
236239
237240 void eof ()
238241 {
239242 switch (m_last_type) {
240243 case osmium::item_type::node:
241- m_osmdata. after_nodes ();
244+ m_osmdata-> after_nodes ();
242245 // fallthrough
243246 case osmium::item_type::way:
244- m_osmdata. after_ways ();
247+ m_osmdata-> after_ways ();
245248 break ;
246249 default :
247250 break ;
248251 }
249252
250- m_osmdata. after_relations ();
251- m_progress. print_summary ();
253+ m_osmdata-> after_relations ();
254+ m_progress-> print_summary ();
252255 }
253256
254257private:
255- osmdata_t & m_osmdata;
256- progress_display_t & m_progress;
258+ osmdata_t * m_osmdata;
259+ progress_display_t * m_progress;
257260 osmium::item_type m_last_type = osmium::item_type::node;
258261 bool m_append;
259262}; // class input_context_t
260263
261264static void process_single_file (osmium::io::File const &file,
262- osmdata_t & osmdata,
263- progress_display_t & progress, bool append)
265+ osmdata_t * osmdata,
266+ progress_display_t * progress, bool append)
264267{
265268 osmium::io::Reader reader{file};
266269 type_id_version last{osmium::item_type::node, 0 , 0 };
@@ -278,8 +281,8 @@ static void process_single_file(osmium::io::File const &file,
278281}
279282
280283static void process_multiple_files (std::vector<osmium::io::File> const &files,
281- osmdata_t & osmdata,
282- progress_display_t & progress, bool append)
284+ osmdata_t * osmdata,
285+ progress_display_t * progress, bool append)
283286{
284287 std::vector<data_source_t > data_sources;
285288 data_sources.reserve (files.size ());
@@ -315,13 +318,15 @@ static void process_multiple_files(std::vector<osmium::io::File> const &files,
315318}
316319
317320void process_files (std::vector<osmium::io::File> const &files,
318- osmdata_t & osmdata, bool append, bool show_progress)
321+ osmdata_t * osmdata, bool append, bool show_progress)
319322{
323+ assert (osmdata);
324+
320325 progress_display_t progress{show_progress};
321326
322327 if (files.size () == 1 ) {
323- process_single_file (files.front (), osmdata, progress, append);
328+ process_single_file (files.front (), osmdata, & progress, append);
324329 } else {
325- process_multiple_files (files, osmdata, progress, append);
330+ process_multiple_files (files, osmdata, & progress, append);
326331 }
327332}
0 commit comments