X-Git-Url: http://git.tdb.fi/?p=libs%2Fdatafile.git;a=blobdiff_plain;f=source%2Fbinaryparser.cpp;h=e2ced82098e7b1472944dd4a2b626bef32211459;hp=051133f79a32cecb540c021f87b6930f5e168566;hb=e063c8e0aa04f0b09962be8b6c586c1d021a929f;hpb=7abc9c3ed271ed787d57c2f074c9a696fb7b2572 diff --git a/source/binaryparser.cpp b/source/binaryparser.cpp index 051133f..e2ced82 100644 --- a/source/binaryparser.cpp +++ b/source/binaryparser.cpp @@ -48,7 +48,10 @@ Statement BinaryParser::parse() { const StatementKey *key; if(cur_info) + { key = &cur_info->key; + cur_info = 0; + } else { int id = parse_int(); @@ -84,15 +87,16 @@ Statement BinaryParser::parse() } } - if(!sub_remaining.empty()) - --sub_remaining.back(); + unsigned upper_nsub = (sub_remaining.empty() ? 0 : sub_remaining.back()); unsigned nsub = parse_int(); for(unsigned j = 0; j0) + sub_remaining.back() = upper_nsub-1; + result.valid = true; - cur_info = 0; return result; }