]> git.tdb.fi Git - libs/datafile.git/blobdiff - source/binaryparser.cpp
Make use of KeyError's key parameter
[libs/datafile.git] / source / binaryparser.cpp
index 6aed5b1590bb93b383fb45c535a6cd75af94a030..ba6414bc77a369a7eb2d7c51e06e412aee16fb0a 100644 (file)
@@ -87,7 +87,7 @@ Statement BinaryParser::parse_statement()
                        result.args.push_back(parse_bool());
                        break;
                case 'e':
-                       result.args.push_back(parse_enum());
+                       result.args.push_back(Value(ENUM, parse_enum()));
                        break;
                }
        }
@@ -132,7 +132,7 @@ float BinaryParser::parse_float()
        };
 
 #if BYTE_ORDER == LITTLE_ENDIAN
-       for(unsigned i=sizeof(float)-1; i--;)
+       for(unsigned i=sizeof(float); i--;)
                d[i]=in.get();
 #else
        for(unsigned i=0; i<sizeof(float); ++i)
@@ -162,7 +162,7 @@ string BinaryParser::parse_enum()
        unsigned id=parse_int();
        EnumMap::iterator i=enums.find(id);
        if(i==enums.end())
-               throw KeyError("Unknown enum");
+               throw KeyError("Unknown enum", lexical_cast(id));
        return i->second;
 }