//#define PROTOBUF_BYTES_SIZE ((size_t)(0xFFFFFFFF)) //Fails
#define PROTOBUF_BYTES_SIZE ((size_t)(0xFFFFFFFF-5)) //Succeeds
int main(int argc, char** argv)
{
int ret = 0;
MsgTest *msg, *msg2;
size_t len;
uint8_t *buf;
msg = malloc(sizeof(*msg));
if (!msg) {
printf("Failed to allocate proto structure\n");
return -ENOMEM;
}
msg_test__init(msg);
msg->buf.data = malloc(PROTOBUF_BYTES_SIZE);
msg->buf.len = PROTOBUF_BYTES_SIZE;
len = msg_test__get_packed_size(msg);
buf = malloc(len);
if (!buf) {
printf("Failed to allocate memory (len:0x%lx)\n", len);
return -ENOMEM;
}
msg_test__pack(msg, buf);
//msg2 = msg_test__unpack(&my_allocator, len, buf);
msg2 = msg_test__unpack(NULL, len, buf);
if (msg2) {
printf("Unpack successful\n");
msg_test__free_unpacked(msg2, NULL);
} else {
printf("Unpack failed\n");
}
return ret;
}
-------------------------------