@@ -138,7 +138,7 @@ inline char const *decode_upto(char const *src, char *dst)
138138}
139139
140140template <typename T>
141- void pgsql_parse_tags (char const *string, osmium::memory::Buffer & buffer,
141+ void pgsql_parse_tags (char const *string, osmium::memory::Buffer * buffer,
142142 T &obuilder)
143143{
144144 if (*string++ != ' {' ) {
@@ -147,7 +147,7 @@ void pgsql_parse_tags(char const *string, osmium::memory::Buffer &buffer,
147147
148148 char key[1024 ];
149149 char val[1024 ];
150- osmium::builder::TagListBuilder builder{buffer, &obuilder};
150+ osmium::builder::TagListBuilder builder{* buffer, &obuilder};
151151
152152 while (*string != ' }' ) {
153153 string = decode_upto (string, key);
@@ -162,15 +162,15 @@ void pgsql_parse_tags(char const *string, osmium::memory::Buffer &buffer,
162162 }
163163}
164164
165- void pgsql_parse_members (char const *string, osmium::memory::Buffer & buffer,
165+ void pgsql_parse_members (char const *string, osmium::memory::Buffer * buffer,
166166 osmium::builder::RelationBuilder &obuilder)
167167{
168168 if (*string++ != ' {' ) {
169169 return ;
170170 }
171171
172172 char role[1024 ];
173- osmium::builder::RelationMemberListBuilder builder{buffer, &obuilder};
173+ osmium::builder::RelationMemberListBuilder builder{* buffer, &obuilder};
174174
175175 while (*string != ' }' ) {
176176 char type = string[0 ];
@@ -186,11 +186,11 @@ void pgsql_parse_members(char const *string, osmium::memory::Buffer &buffer,
186186 }
187187}
188188
189- void pgsql_parse_nodes (char const *string, osmium::memory::Buffer & buffer,
189+ void pgsql_parse_nodes (char const *string, osmium::memory::Buffer * buffer,
190190 osmium::builder::WayBuilder &builder)
191191{
192192 if (*string++ == ' {' ) {
193- osmium::builder::WayNodeListBuilder wnl_builder{buffer, &builder};
193+ osmium::builder::WayNodeListBuilder wnl_builder{* buffer, &builder};
194194 while (*string != ' }' ) {
195195 char *ptr = nullptr ;
196196 wnl_builder.add_node_ref (std::strtoll (string, &ptr, 10 ));
@@ -394,32 +394,36 @@ void middle_pgsql_t::way_set(osmium::Way const &way)
394394}
395395
396396bool middle_query_pgsql_t::way_get (osmid_t id,
397- osmium::memory::Buffer & buffer) const
397+ osmium::memory::Buffer * buffer) const
398398{
399+ assert (buffer);
400+
399401 auto const res = m_sql_conn.exec_prepared (" get_way" , id);
400402
401403 if (res.num_tuples () != 1 ) {
402404 return false ;
403405 }
404406
405407 {
406- osmium::builder::WayBuilder builder{buffer};
408+ osmium::builder::WayBuilder builder{* buffer};
407409 builder.set_id (id);
408410
409411 pgsql_parse_nodes (res.get_value (0 , 0 ), buffer, builder);
410412 pgsql_parse_tags (res.get_value (0 , 1 ), buffer, builder);
411413 }
412414
413- buffer. commit ();
415+ buffer-> commit ();
414416
415417 return true ;
416418}
417419
418420size_t
419421middle_query_pgsql_t ::rel_way_members_get(osmium::Relation const &rel,
420422 rolelist_t *roles,
421- osmium::memory::Buffer & buffer) const
423+ osmium::memory::Buffer * buffer) const
422424{
425+ assert (buffer);
426+
423427 util::string_id_list_t id_list;
424428
425429 for (auto const &m : rel.members ()) {
@@ -445,14 +449,14 @@ middle_query_pgsql_t::rel_way_members_get(osmium::Relation const &rel,
445449 for (int j = 0 ; j < res.num_tuples (); ++j) {
446450 if (m.ref () == wayidspg[j]) {
447451 {
448- osmium::builder::WayBuilder builder{buffer};
452+ osmium::builder::WayBuilder builder{* buffer};
449453 builder.set_id (m.ref ());
450454
451455 pgsql_parse_nodes (res.get_value (j, 1 ), buffer, builder);
452456 pgsql_parse_tags (res.get_value (j, 2 ), buffer, builder);
453457 }
454458
455- buffer. commit ();
459+ buffer-> commit ();
456460 if (roles) {
457461 roles->emplace_back (m.role ());
458462 }
@@ -516,8 +520,10 @@ void middle_pgsql_t::relation_set(osmium::Relation const &rel)
516520}
517521
518522bool middle_query_pgsql_t::relation_get (osmid_t id,
519- osmium::memory::Buffer & buffer) const
523+ osmium::memory::Buffer * buffer) const
520524{
525+ assert (buffer);
526+
521527 auto const res = m_sql_conn.exec_prepared (" get_rel" , id);
522528 // Fields are: members, tags, member_count */
523529 //
@@ -526,14 +532,14 @@ bool middle_query_pgsql_t::relation_get(osmid_t id,
526532 }
527533
528534 {
529- osmium::builder::RelationBuilder builder{buffer};
535+ osmium::builder::RelationBuilder builder{* buffer};
530536 builder.set_id (id);
531537
532538 pgsql_parse_members (res.get_value (0 , 0 ), buffer, builder);
533539 pgsql_parse_tags (res.get_value (0 , 1 ), buffer, builder);
534540 }
535541
536- buffer. commit ();
542+ buffer-> commit ();
537543
538544 return true ;
539545}
0 commit comments