diff --git a/serial.cpp b/serial.cpp index 6d13b8c..c3b6649 100644 --- a/serial.cpp +++ b/serial.cpp @@ -212,7 +212,9 @@ void serialize_feature(FILE *geomfile, serial_feature *sf, long long *geompos, c } serialize_int(geomfile, sf->m, geompos, fname); - serialize_long_long(geomfile, sf->metapos, geompos, fname); + if (sf->m != 0) { + serialize_long_long(geomfile, sf->metapos, geompos, fname); + } if (sf->metapos < 0 && sf->m != sf->keys.size()) { fprintf(stderr, "Internal error: %lld doesn't match %lld\n", (long long) sf->m, (long long) sf->keys.size()); diff --git a/tile.cpp b/tile.cpp index fcd2ead..3b782d0 100644 --- a/tile.cpp +++ b/tile.cpp @@ -1337,10 +1337,12 @@ long long write_tile(FILE *geoms, long long *geompos_in, char *metabase, char *s deserialize_long_long_io(geoms, &extent, geompos_in); } - long long metastart; + long long metastart = 0; int m; deserialize_int_io(geoms, &m, geompos_in); - deserialize_long_long_io(geoms, &metastart, geompos_in); + if (m != 0) { + deserialize_long_long_io(geoms, &metastart, geompos_in); + } char *meta = NULL; std::vector metakeys, metavals;