Skip to content

Commit 7e0a086

Browse files
committed
Cleanup and some new asserts for o5m parser code
1 parent 66c5efe commit 7e0a086

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

include/osmium/io/detail/o5m_input_format.hpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ DEALINGS IN THE SOFTWARE.
5858

5959
#include <algorithm>
6060
#include <array>
61+
#include <cassert>
6162
#include <cstddef>
6263
#include <cstdint>
6364
#include <cstring>
@@ -129,6 +130,8 @@ namespace osmium {
129130
}
130131

131132
void add(const char* string, std::size_t size) {
133+
assert(string);
134+
132135
if (m_table.empty()) {
133136
m_table.resize(entry_size * number_of_entries);
134137
}
@@ -260,8 +263,10 @@ namespace osmium {
260263
}
261264

262265
const char* decode_string(const char** dataptr, const char* const end) {
266+
assert(*dataptr != end);
267+
263268
if (**dataptr == 0x00) { // get inline string
264-
(*dataptr)++;
269+
++(*dataptr);
265270
if (*dataptr == end) {
266271
throw o5m_error{"string format error"};
267272
}
@@ -273,6 +278,8 @@ namespace osmium {
273278
}
274279

275280
std::pair<osmium::user_id_type, const char*> decode_user(const char** dataptr, const char* const end) {
281+
assert(*dataptr != end);
282+
276283
const bool update_pointer = (**dataptr == 0x00);
277284
const char* data = decode_string(dataptr, end);
278285
const char* start = data;
@@ -367,7 +374,7 @@ namespace osmium {
367374
object.set_uid(uid_user.first);
368375
user = uid_user.second;
369376
} else {
370-
object.set_uid(user_id_type(0));
377+
object.set_uid(user_id_type{0});
371378
}
372379
}
373380
}
@@ -436,6 +443,8 @@ namespace osmium {
436443
}
437444

438445
std::pair<osmium::item_type, const char*> decode_role(const char** dataptr, const char* const end) {
446+
assert(*dataptr != end);
447+
439448
const bool update_pointer = (**dataptr == 0x00);
440449
const char* data = decode_string(dataptr, end);
441450
const char* start = data;

0 commit comments

Comments
 (0)