X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbinaryparser.cpp;h=e2ced82098e7b1472944dd4a2b626bef32211459;hb=b39ce68f12c30eedb272b65fe78baec5864d89ca;hp=051133f79a32cecb540c021f87b6930f5e168566;hpb=3b78eeb8b92dc3524d6a0456b4daf0a0f3dbf813;p=libs%2Fdatafile.git 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; }