static void set_field_one(struct pbc_env *p, struct _field *f) { const char * type_name = f->type_name.n; if (f->type == PTYPE_MESSAGE) { f->type_name.m = _pbcM_sp_query(p->msgs, type_name); // printf("MESSAGE: %s %p\n",type_name, f->type_name.m); } else if (f->type == PTYPE_ENUM) { f->type_name.e = _pbcM_sp_query(p->enums, type_name); // printf("ENUM: %s %p ",type_name, f->type_name.e); const char * str = f->default_v->s.str; if (str) { f->default_v->e.id = _pbcM_si_query(f->type_name.e->name, str); f->default_v->e.name = _pbcM_ip_query(f->type_name.e->id, f->default_v->e.id); // printf("[%s %d]\n",str,f->default_v->e.id); } else { memcpy(f->default_v, f->type_name.e->default_v, sizeof(pbc_var)); // printf("(%s %d)\n",f->default_v->e.name,f->default_v->e.id); } } }
static void set_field_one(struct pbc_env *p, struct _field *f) { const char * type_name = f->type_name.n; if (f->type == PTYPE_MESSAGE) { f->type_name.m = (struct _message *)_pbcM_sp_query(p->msgs, type_name); // printf("MESSAGE: %s %p\n",type_name, f->type_name.m); } else if (f->type == PTYPE_ENUM) { f->type_name.e = (struct _enum *)_pbcM_sp_query(p->enums, type_name); // printf("ENUM: %s %p ",type_name, f->type_name.e); const char * str = f->default_v->s.str; if (str && str[0]) { int err = _pbcM_si_query(f->type_name.e->name, str , &(f->default_v->e.id)); if (err < 0) goto _default; f->default_v->e.name = (const char *)_pbcM_ip_query(f->type_name.e->id, f->default_v->e.id); // printf("[%s %d]\n",str,f->default_v->e.id); } else { _default: memcpy(f->default_v, f->type_name.e->default_v, sizeof(pbc_var)); // printf("(%s %d)\n",f->default_v->e.name,f->default_v->e.id); } } }