@@ -363,44 +363,29 @@ void CommandTagsFilter::copy_matching_objects(osmium::io::Reader& reader, osmium
363363 }
364364 }
365365 progress_bar.done ();
366-
367- m_vout << " Closing output file...\n " ;
368- writer.close ();
369-
370- m_vout << " Closing input file...\n " ;
371- reader.close ();
372366}
373367
374368bool CommandTagsFilter::run () {
375- if (m_add_referenced_objects) {
376- m_vout << " Opening input file to get header...\n " ;
377- osmium::io::Reader reader_only_for_header{m_input_file, osmium::osm_entity_bits::nothing};
378-
379- m_vout << " Opening output file...\n " ;
380- osmium::io::Header header{reader_only_for_header.header ()};
381- setup_header (header);
382- reader_only_for_header.close ();
383-
384- osmium::io::Writer writer{m_output_file, header, m_output_overwrite, m_fsync};
369+ m_vout << " Opening output file...\n " ;
370+ osmium::io::Writer writer{m_output_file, m_output_overwrite, m_fsync};
385371
372+ if (m_add_referenced_objects) {
386373 find_referenced_objects ();
374+ }
387375
388- m_vout << " Opening input file...\n " ;
389- osmium::io::Reader reader{m_input_file, get_needed_types ()};
390-
391- copy_matching_objects (reader, writer);
392- } else {
393- m_vout << " Opening input file...\n " ;
394- osmium::io::Reader reader{m_input_file, get_needed_types ()};
376+ m_vout << " Opening input file...\n " ;
377+ osmium::io::Reader reader{m_input_file, get_needed_types ()};
378+ osmium::io::Header header{reader.header ()};
379+ setup_header (header);
380+ writer.set_header (header);
395381
396- m_vout << " Opening output file...\n " ;
397- osmium::io::Header header{reader.header ()};
398- setup_header (header);
382+ copy_matching_objects (reader, writer);
399383
400- osmium::io::Writer writer{m_output_file, header, m_output_overwrite, m_fsync};
384+ m_vout << " Closing output file...\n " ;
385+ writer.close ();
401386
402- copy_matching_objects (reader, writer) ;
403- }
387+ m_vout << " Closing input file... \n " ;
388+ reader. close ();
404389
405390 show_memory_used ();
406391
0 commit comments