Hi all,

I used the c bindings of Google protocol buffer, when use the get packed 
size method, it gave me "assertion failed" problem.

The "kvstr.proto" file:
message KVStr
{
    optional int32 job_id = 1;
    optional int32 num_item = 2;
    repeated string name = 3;
}

I generated the head file and source file, kvstr.pb-c.h, kvstr.pb-c.c

I defined a function in my program which does initialization:

extern KVStr* _init_kv_str(int has_job_id, int job_id,
int has_num_item, int num_item, int n_name)
{
KVStr kv_str = KVSTR__INIT;
kv_str.has_job_id = has_job_id;
if (has_job_id)
{
kv_str.job_id = job_id;
}
kv_str.has_num_item = has_num_item;
if (has_num_item)
{
kv_str.num_item = num_item;
}
kv_str.n_name = n_name;
kv_str.name = (char**)malloc(sizeof(char*) * n_name);
return &kv_str;
}
 
Then, when I do: 
KVStr* kv_str_key = _init_kv_str(0, -1, 0, -1, 1)
unsigned len = kvstr__get_packed_size(kv_str_key);

This gave me the problem:  kvstr.pb-c.c:18: kvstr__get_packed_size: 
Assertion `message->base.descriptor == &kvstr__descriptor' failed.

Does anyone know what is perhaps the problem? Thanks

Ke

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/protobuf?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to