::encode(struct_v, bl); \
::encode(struct_compat, bl); \
__le32 struct_len = 0; \
- unsigned struct_len_pos = bl.length(); \
+ buffer::list::iterator struct_len_it = bl.end(); \
::encode(struct_len, bl); \
do {
*/
#define ENCODE_FINISH(bl) \
} while (false); \
- struct_len = bl.length() - struct_len_pos - sizeof(struct_len); \
- bl.copy_in(struct_len_pos, 4, (char *)&struct_len);
+ struct_len = bl.length() - struct_len_it.get_off() - sizeof(struct_len); \
+ struct_len_it.copy_in(4, (char *)&struct_len);
#define DECODE_ERR_VERSION(func, v) \
"" #func " unknown encoding version > " #v