@@ -87,10 +87,15 @@ class writer_t
8787public:
8888 explicit writer_t (int srid) : m_srid(srid) {}
8989
90- void add_sub_geometry (std::string const &part) { m_data.append (part); }
90+ void add_sub_geometry (std::string const &part)
91+ {
92+ assert (!m_data.empty ());
93+ m_data.append (part);
94+ }
9195
9296 void add_location (osmium::geom::Coordinates const &xy)
9397 {
98+ assert (!m_data.empty ());
9499 str_push (m_data, xy.x );
95100 str_push (m_data, xy.y );
96101 }
@@ -111,6 +116,7 @@ class writer_t
111116
112117 void linestring_start ()
113118 {
119+ assert (m_data.empty ());
114120 m_geometry_size_offset = header (m_data, wkb_line, true );
115121 }
116122
@@ -129,6 +135,7 @@ class writer_t
129135
130136 void multilinestring_start ()
131137 {
138+ assert (m_data.empty ());
132139 m_multigeometry_size_offset = header (m_data, wkb_multi_line, true );
133140 }
134141
@@ -147,6 +154,7 @@ class writer_t
147154
148155 void polygon_start ()
149156 {
157+ assert (m_data.empty ());
150158 m_geometry_size_offset = header (m_data, wkb_polygon, true );
151159 }
152160
@@ -176,6 +184,7 @@ class writer_t
176184
177185 void multipolygon_start ()
178186 {
187+ assert (m_data.empty ());
179188 m_multigeometry_size_offset = header (m_data, wkb_multi_polygon, true );
180189 }
181190
0 commit comments