next_enum_id(1)
{
dict[DictEntry("__st", "iss")]=1;
- dict[DictEntry("__enum", "is")]=1;
+ dict[DictEntry("__enum", "is")]=2;
}
void BinaryWriter::write(const Statement &st)
kst.args.push_back(de.args);
write_(kst);
- dict.insert(Dictionary::value_type(de, next_st_id++)).first;
+ dict[de]=next_st_id++;
}
for(ValueArray::const_iterator i=st.args.begin(); i!=st.args.end(); ++i)
void BinaryWriter::write_int(long long n)
{
- unsigned i=1;
- for(; n>>(i*7); ++i);
- for(; i--;)
+ unsigned i=sizeof(long long)-1;
+
+ if(n>=0)
+ for(; (i>0 && (n>>(i*7-1))==0); --i);
+ else
+ for(; (i>0 && (n>>(i*7-1))==-1); --i);
+
+ for(++i; i--;)
out.put(n>>(i*7) & 0x7F | (i?0x80:0));
}