remove CAPN_COMPOSITE_LIST and add capn_len
This commit is contained in:
parent
59f827e93d
commit
ff44e4df26
6 changed files with 165 additions and 180 deletions
|
|
@ -14,7 +14,6 @@ UINT_T CAT(capn_get,SZ) (LIST_T l, int off) {
|
|||
|
||||
switch (p.type) {
|
||||
case CAPN_LIST:
|
||||
case CAPN_COMPOSITE_LIST:
|
||||
if (p.datasz < SZ/8)
|
||||
return 0;
|
||||
d = p.data + off * (p.datasz + 8*p.ptrs);
|
||||
|
|
@ -42,7 +41,6 @@ int CAT(capn_getv,SZ) (LIST_T l, int off, UINT_T *to, int sz) {
|
|||
|
||||
switch (p.type) {
|
||||
case CAPN_LIST:
|
||||
case CAPN_COMPOSITE_LIST:
|
||||
if (p.datasz == SZ/8 && !p.ptrs && (SZ == 8 || CAPN_LITTLE)) {
|
||||
memcpy(to, p.data + off, sz * (SZ/8));
|
||||
return sz;
|
||||
|
|
@ -81,7 +79,6 @@ int CAT(capn_set,SZ) (LIST_T l, int off, UINT_T v) {
|
|||
|
||||
switch (p.type) {
|
||||
case CAPN_LIST:
|
||||
case CAPN_COMPOSITE_LIST:
|
||||
if (p.datasz < SZ/8)
|
||||
return -1;
|
||||
d = p.data + off * (p.datasz + 8*p.ptrs);
|
||||
|
|
@ -110,7 +107,6 @@ int CAT(capn_setv,SZ) (LIST_T l, int off, const UINT_T *from, int sz) {
|
|||
|
||||
switch (p.type) {
|
||||
case CAPN_LIST:
|
||||
case CAPN_COMPOSITE_LIST:
|
||||
if (p.datasz == SZ/8 && !p.ptrs && (SZ == 8 || CAPN_LITTLE)) {
|
||||
memcpy(p.data + off, from, sz * (SZ/8));
|
||||
return sz;
|
||||
|
|
|
|||
|
|
@ -105,14 +105,16 @@ static void setupStruct(struct capn *ctx) {
|
|||
EXPECT_EQ(0, capn_setp(ptr, 1, list32.p));
|
||||
|
||||
capn_ptr list = capn_new_list(ptr.seg, 4, 4, 1);
|
||||
ASSERT_EQ(CAPN_COMPOSITE_LIST, list.type);
|
||||
ASSERT_EQ(CAPN_LIST, list.type);
|
||||
ASSERT_EQ(1, list.is_composite_list);
|
||||
EXPECT_EQ(4, list.len);
|
||||
EXPECT_EQ(8, list.datasz);
|
||||
EXPECT_EQ(1, list.ptrs);
|
||||
EXPECT_EQ(0, capn_setp(ptr, 2, list));
|
||||
for (int i = 0; i < 4; i++) {
|
||||
capn_ptr element = capn_getp(list, i, 1);
|
||||
ASSERT_EQ(CAPN_LIST_MEMBER, element.type);
|
||||
ASSERT_EQ(CAPN_STRUCT, element.type);
|
||||
EXPECT_EQ(1, element.is_list_member);
|
||||
EXPECT_EQ(8, element.datasz);
|
||||
EXPECT_EQ(1, element.ptrs);
|
||||
EXPECT_EQ(0, capn_write32(element, 0, 300+i));
|
||||
|
|
@ -184,14 +186,16 @@ static void checkStruct(struct capn *ctx) {
|
|||
EXPECT_EQ(202, capn_get16(list16, 2));
|
||||
|
||||
capn_ptr list = capn_getp(ptr, 2, 1);
|
||||
EXPECT_EQ(CAPN_COMPOSITE_LIST, list.type);
|
||||
EXPECT_EQ(CAPN_LIST, list.type);
|
||||
EXPECT_EQ(1, list.is_composite_list);
|
||||
EXPECT_EQ(4, list.len);
|
||||
EXPECT_EQ(8, list.datasz);
|
||||
EXPECT_EQ(1, list.ptrs);
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
capn_ptr element = capn_getp(list, i, 1);
|
||||
EXPECT_EQ(CAPN_LIST_MEMBER, element.type);
|
||||
EXPECT_EQ(CAPN_STRUCT, element.type);
|
||||
EXPECT_EQ(1, element.is_list_member);
|
||||
EXPECT_EQ(8, element.datasz);
|
||||
EXPECT_EQ(1, element.ptrs);
|
||||
EXPECT_EQ(300+i, capn_read32(element,0));
|
||||
|
|
|
|||
76
capn.c
76
capn.c
|
|
@ -383,7 +383,7 @@ static capn_ptr read_ptr(struct capn_segment *s, char *d) {
|
|||
ret.datasz = U32(U16(val >> 32)) * 8;
|
||||
ret.ptrs = U32(U16(val >> 48));
|
||||
ret.len = U32(val) >> 2;
|
||||
ret.type = CAPN_COMPOSITE_LIST;
|
||||
ret.is_composite_list = 1;
|
||||
|
||||
if ((ret.datasz + 8*ret.ptrs) * ret.len != e - d) {
|
||||
goto err;
|
||||
|
|
@ -408,8 +408,9 @@ err:
|
|||
}
|
||||
|
||||
void capn_resolve(capn_ptr *p) {
|
||||
if (p->type == CAPN_FAR_POINTER)
|
||||
if (p->type == CAPN_FAR_POINTER) {
|
||||
*p = read_ptr(p->seg, p->data);
|
||||
}
|
||||
}
|
||||
|
||||
capn_ptr capn_getp(capn_ptr p, int off, int resolve) {
|
||||
|
|
@ -419,11 +420,11 @@ capn_ptr capn_getp(capn_ptr p, int off, int resolve) {
|
|||
capn_resolve(&p);
|
||||
|
||||
switch (p.type) {
|
||||
case CAPN_COMPOSITE_LIST:
|
||||
case CAPN_LIST:
|
||||
/* Return an inner pointer */
|
||||
if (off < p.len) {
|
||||
capn_ptr ret = {CAPN_LIST_MEMBER};
|
||||
capn_ptr ret = {CAPN_STRUCT};
|
||||
ret.is_list_member = 1;
|
||||
ret.data = p.data + off * (p.datasz + 8*p.ptrs);
|
||||
ret.seg = p.seg;
|
||||
ret.datasz = p.datasz;
|
||||
|
|
@ -433,7 +434,6 @@ capn_ptr capn_getp(capn_ptr p, int off, int resolve) {
|
|||
goto err;
|
||||
}
|
||||
|
||||
case CAPN_LIST_MEMBER:
|
||||
case CAPN_STRUCT:
|
||||
if (off >= p.ptrs) {
|
||||
goto err;
|
||||
|
|
@ -463,23 +463,6 @@ err:
|
|||
return p;
|
||||
}
|
||||
|
||||
static int data_size(struct capn_ptr p) {
|
||||
switch (p.type) {
|
||||
case CAPN_BIT_LIST:
|
||||
return p.datasz;
|
||||
case CAPN_PTR_LIST:
|
||||
return p.len*8;
|
||||
case CAPN_STRUCT:
|
||||
return p.datasz + 8*p.ptrs;
|
||||
case CAPN_COMPOSITE_LIST:
|
||||
return p.len * (p.datasz + 8*p.ptrs) + 8;
|
||||
case CAPN_LIST:
|
||||
return p.len * (p.datasz + 8*p.ptrs);
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
static void write_ptr_tag(char *d, capn_ptr p, int off) {
|
||||
uint64_t val = U64(U32(I32(off/8) << 2));
|
||||
|
||||
|
|
@ -488,11 +471,10 @@ static void write_ptr_tag(char *d, capn_ptr p, int off) {
|
|||
val |= STRUCT_PTR | (U64(p.datasz/8) << 32) | (U64(p.ptrs) << 48);
|
||||
break;
|
||||
|
||||
case CAPN_COMPOSITE_LIST:
|
||||
val |= LIST_PTR | (U64(COMPOSITE_LIST) << 32) | (U64(p.len * (p.datasz/8 + p.ptrs)) << 35);
|
||||
break;
|
||||
|
||||
case CAPN_LIST:
|
||||
if (p.is_composite_list) {
|
||||
val |= LIST_PTR | (U64(COMPOSITE_LIST) << 32) | (U64(p.len * (p.datasz/8 + p.ptrs)) << 35);
|
||||
} else {
|
||||
val |= LIST_PTR | (U64(p.len) << 35);
|
||||
|
||||
if (p.datasz == 8) {
|
||||
|
|
@ -506,6 +488,7 @@ static void write_ptr_tag(char *d, capn_ptr p, int off) {
|
|||
} else {
|
||||
val |= (U64(VOID_LIST) << 32);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case CAPN_BIT_LIST:
|
||||
|
|
@ -536,13 +519,13 @@ static void write_double_far(char *d, struct capn_segment *s, char *tgt) {
|
|||
|
||||
static int write_ptr(struct capn_segment *s, char *d, capn_ptr p) {
|
||||
/* note p.seg can be NULL if its a ptr to static data */
|
||||
char *pdata = p.data - (p.type == CAPN_COMPOSITE_LIST ? 8 : 0);
|
||||
char *pdata = p.data - 8*p.is_composite_list;
|
||||
|
||||
if (data_size(p) == 0) {
|
||||
if (p.type == CAPN_NULL || (p.type == CAPN_STRUCT && p.datasz == 0 && p.ptrs == 0)) {
|
||||
write_ptr_tag(d, p, 0);
|
||||
return 0;
|
||||
|
||||
} else if (!p.seg || p.seg->capn != s->capn || p.type == CAPN_LIST_MEMBER) {
|
||||
} else if (!p.seg || p.seg->capn != s->capn || p.is_list_member) {
|
||||
return NEED_TO_COPY;
|
||||
|
||||
} else if (p.seg == s) {
|
||||
|
|
@ -600,14 +583,12 @@ struct copy {
|
|||
static capn_ptr new_clone(struct capn_segment *s, capn_ptr p) {
|
||||
switch (p.type) {
|
||||
case CAPN_STRUCT:
|
||||
case CAPN_LIST_MEMBER:
|
||||
return capn_new_struct(s, p.datasz, p.ptrs);
|
||||
case CAPN_PTR_LIST:
|
||||
return capn_new_ptr_list(s, p.len);
|
||||
case CAPN_BIT_LIST:
|
||||
return capn_new_list1(s, p.len).p;
|
||||
case CAPN_LIST:
|
||||
case CAPN_COMPOSITE_LIST:
|
||||
return capn_new_list(s, p.len, p.datasz, p.ptrs);
|
||||
default:
|
||||
return p;
|
||||
|
|
@ -622,12 +603,28 @@ static int is_ptr_equal(const struct capn_ptr *a, const struct capn_ptr *b) {
|
|||
&& a->ptrs == b->ptrs;
|
||||
}
|
||||
|
||||
static int data_size(struct capn_ptr p) {
|
||||
switch (p.type) {
|
||||
case CAPN_BIT_LIST:
|
||||
return p.datasz;
|
||||
case CAPN_PTR_LIST:
|
||||
return p.len*8;
|
||||
case CAPN_STRUCT:
|
||||
return p.datasz + 8*p.ptrs;
|
||||
case CAPN_LIST:
|
||||
return p.len * (p.datasz + 8*p.ptrs) + 8*p.is_composite_list;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
static int copy_ptr(struct capn_segment *seg, char *data, struct capn_ptr *t, struct capn_ptr *f, int *dep) {
|
||||
struct capn *c = seg->capn;
|
||||
struct copy *cp = NULL;
|
||||
struct capn_tree **xcp;
|
||||
char *fbegin = f->data - (f->type == CAPN_COMPOSITE_LIST ? 8 : 0);
|
||||
char *fbegin = f->data - 8*f->is_composite_list;
|
||||
char *fend = fbegin + data_size(*f);
|
||||
int zero_sized = (fend == fbegin);
|
||||
|
||||
/* We always copy list members as it would otherwise be an
|
||||
* overlapped pointer (the data is owned by the enclosing list).
|
||||
|
|
@ -638,7 +635,7 @@ static int copy_ptr(struct capn_segment *seg, char *data, struct capn_ptr *t, st
|
|||
*/
|
||||
|
||||
xcp = &c->copy;
|
||||
while (*xcp && fend > fbegin) {
|
||||
while (*xcp && !zero_sized) {
|
||||
cp = (struct copy*) *xcp;
|
||||
if (fend <= cp->fbegin) {
|
||||
xcp = &cp->hdr.link[0];
|
||||
|
|
@ -661,7 +658,7 @@ static int copy_ptr(struct capn_segment *seg, char *data, struct capn_ptr *t, st
|
|||
|
||||
/* add the copy to the copy tree so we can look for overlapping
|
||||
* source pointers and handle recursive structures */
|
||||
if (fend > fbegin) {
|
||||
if (!zero_sized) {
|
||||
struct copy *n;
|
||||
struct capn_segment *cs = c->copylist;
|
||||
|
||||
|
|
@ -713,7 +710,6 @@ static int copy_ptr(struct capn_segment *seg, char *data, struct capn_ptr *t, st
|
|||
return 0;
|
||||
|
||||
case CAPN_LIST:
|
||||
case CAPN_COMPOSITE_LIST:
|
||||
if (!t->len) {
|
||||
/* empty list - nothing to copy */
|
||||
} else if (t->ptrs && t->datasz) {
|
||||
|
|
@ -779,8 +775,7 @@ int capn_setp(capn_ptr p, int off, capn_ptr tgt) {
|
|||
|
||||
switch (p.type) {
|
||||
case CAPN_LIST:
|
||||
case CAPN_COMPOSITE_LIST:
|
||||
if (off >= p.len || (tgt.type != CAPN_STRUCT && tgt.type != CAPN_LIST_MEMBER))
|
||||
if (off >= p.len || tgt.type != CAPN_STRUCT)
|
||||
return -1;
|
||||
|
||||
to[0] = p;
|
||||
|
|
@ -796,7 +791,6 @@ int capn_setp(capn_ptr p, int off, capn_ptr tgt) {
|
|||
goto copy_ptr;
|
||||
|
||||
case CAPN_STRUCT:
|
||||
case CAPN_LIST_MEMBER:
|
||||
if (off >= p.ptrs)
|
||||
return -1;
|
||||
data = p.data + p.datasz + 8*off;
|
||||
|
|
@ -837,7 +831,7 @@ int capn_setp(capn_ptr p, int off, capn_ptr tgt) {
|
|||
continue;
|
||||
}
|
||||
|
||||
if (tc->type == CAPN_COMPOSITE_LIST) {
|
||||
if (tc->type == CAPN_LIST) {
|
||||
*fn = capn_getp(*fc, 0, 1);
|
||||
*tn = capn_getp(*tc, 0, 1);
|
||||
|
||||
|
|
@ -862,6 +856,8 @@ int capn_setp(capn_ptr p, int off, capn_ptr tgt) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
/* TODO: handle CAPN_LIST, CAPN_PTR_LIST for bit lists */
|
||||
|
||||
int capn_get1(capn_list1 l, int off) {
|
||||
return l.p.type == CAPN_BIT_LIST
|
||||
&& off < l.p.len
|
||||
|
|
@ -990,7 +986,7 @@ capn_ptr capn_new_list(struct capn_segment *seg, int sz, int datasz, int ptrs) {
|
|||
if (!sz) {
|
||||
/* empty lists may as well be a len=0 void list */
|
||||
} else if (ptrs || datasz > 8) {
|
||||
p.type = CAPN_COMPOSITE_LIST;
|
||||
p.is_composite_list = 1;
|
||||
p.datasz = (datasz + 7) & ~7;
|
||||
p.ptrs = ptrs;
|
||||
new_object(&p, p.len * (p.datasz + 8*p.ptrs) + 8);
|
||||
|
|
|
|||
6
capn.h
6
capn.h
|
|
@ -105,13 +105,13 @@ enum CAPN_TYPE {
|
|||
CAPN_PTR_LIST = 3,
|
||||
CAPN_BIT_LIST = 4,
|
||||
CAPN_FAR_POINTER = 5,
|
||||
CAPN_LIST_MEMBER = 6,
|
||||
CAPN_COMPOSITE_LIST = 7
|
||||
};
|
||||
|
||||
struct capn_ptr {
|
||||
unsigned int type : 4;
|
||||
unsigned int has_ptr_tag : 1;
|
||||
unsigned int is_list_member : 1;
|
||||
unsigned int is_composite_list : 1;
|
||||
unsigned int datasz : 19;
|
||||
unsigned int ptrs : 16;
|
||||
int len;
|
||||
|
|
@ -147,6 +147,8 @@ void capn_append_segment(struct capn*, struct capn_segment*);
|
|||
capn_ptr capn_root(struct capn *c);
|
||||
void capn_resolve(capn_ptr *p);
|
||||
|
||||
#define capn_len(list) ((list).p.type == CAPN_FAR_POINTER ? (capn_resolve(&(list).p), (list).p.len) : (list).p.len)
|
||||
|
||||
/* capn_getp|setp functions get/set ptrs in list/structs
|
||||
* off is the list index or pointer index in a struct
|
||||
* capn_setp will copy the data, create far pointers, etc if the target
|
||||
|
|
|
|||
|
|
@ -68,16 +68,14 @@ static void resolve_names(struct str *b, struct node *n, capn_text name, struct
|
|||
str_add(&n->name, b->str, b->len);
|
||||
str_add(b, "_", 1);
|
||||
|
||||
capn_resolve(&n->n.nestedNodes.p);
|
||||
|
||||
for (i = n->n.nestedNodes.p.len-1; i >= 0; i--) {
|
||||
for (i = capn_len(n->n.nestedNodes)-1; i >= 0; i--) {
|
||||
struct Node_NestedNode nest;
|
||||
get_Node_NestedNode(&nest, n->n.nestedNodes, i);
|
||||
resolve_names(b, find_node(nest.id), nest.name, file);
|
||||
}
|
||||
|
||||
if (n->n.which == Node__struct) {
|
||||
for (i = n->n._struct.fields.p.len-1; i >= 0; i--) {
|
||||
for (i = capn_len(n->n._struct.fields)-1; i >= 0; i--) {
|
||||
if (n->fields[i].group) {
|
||||
resolve_names(b, n->fields[i].group, n->fields[i].f.name, file);
|
||||
}
|
||||
|
|
@ -95,9 +93,8 @@ static void resolve_names(struct str *b, struct node *n, capn_text name, struct
|
|||
static void define_enum(struct node *n) {
|
||||
int i;
|
||||
|
||||
capn_resolve(&n->n._enum.enumerants.p);
|
||||
str_addf(&HDR, "\nenum %s {", n->name.str);
|
||||
for (i = 0; i < n->n._enum.enumerants.p.len; i++) {
|
||||
for (i = 0; i < capn_len(n->n._enum.enumerants); i++) {
|
||||
struct Enumerant e;
|
||||
get_Enumerant(&e, n->n._enum.enumerants, i);
|
||||
if (i) {
|
||||
|
|
@ -285,9 +282,11 @@ static void decode_value(struct value* v, Type_ptr type, Value_ptr value, const
|
|||
if (strcmp(v->tname, "capn_ptr"))
|
||||
str_addf(&SRC, "{");
|
||||
|
||||
str_addf(&SRC, "%d,%d,%d,%d,%d,(char*)&capn_buf[%d],(struct capn_segment*)&capn_seg",
|
||||
str_addf(&SRC, "%d,%d,%d,%d,%d,%d,%d,(char*)&capn_buf[%d],(struct capn_segment*)&capn_seg",
|
||||
p.type,
|
||||
p.has_ptr_tag,
|
||||
p.is_list_member,
|
||||
p.is_composite_list,
|
||||
p.datasz,
|
||||
p.ptrs,
|
||||
p.len,
|
||||
|
|
@ -381,8 +380,8 @@ static void decode_field(struct field *fields, Field_list l, int i) {
|
|||
memset(&f, 0, sizeof(f));
|
||||
get_Field(&f.f, l, i);
|
||||
|
||||
if (f.f.codeOrder >= l.p.len) {
|
||||
fprintf(stderr, "unexpectedly large code order %d >= %d\n", f.f.codeOrder, l.p.len);
|
||||
if (f.f.codeOrder >= capn_len(l)) {
|
||||
fprintf(stderr, "unexpectedly large code order %d >= %d\n", f.f.codeOrder, capn_len(l));
|
||||
exit(3);
|
||||
}
|
||||
|
||||
|
|
@ -660,7 +659,7 @@ static int in_union(struct field *f) {
|
|||
static void union_cases(struct strings *s, struct node *n, struct field *first_field, int mask) {
|
||||
struct field *f, *u = NULL;
|
||||
|
||||
for (f = first_field; f < n->fields + n->n._struct.fields.p.len && in_union(f); f++) {
|
||||
for (f = first_field; f < n->fields + capn_len(n->n._struct.fields) && in_union(f); f++) {
|
||||
|
||||
if (f->f.which != Field_slot)
|
||||
continue;
|
||||
|
|
@ -735,7 +734,7 @@ static void do_union(struct strings *s, struct node *n, struct field *first_fiel
|
|||
str_add(&s->dtab, "\t", -1);
|
||||
|
||||
/* when we have defaults or groups we have to emit each case seperately */
|
||||
for (f = first_field; f < n->fields + n->n._struct.fields.p.len && in_union(f); f++) {
|
||||
for (f = first_field; f < n->fields + capn_len(n->n._struct.fields) && in_union(f); f++) {
|
||||
if (f > first_field) {
|
||||
str_addf(&enums, ",");
|
||||
}
|
||||
|
|
@ -801,7 +800,7 @@ static void define_field(struct strings *s, struct field *f) {
|
|||
|
||||
static void define_group(struct strings *s, struct node *n, const char *group_name) {
|
||||
struct field *f;
|
||||
int flen = n->n._struct.fields.p.len;
|
||||
int flen = capn_len(n->n._struct.fields);
|
||||
int ulen = n->n._struct.discriminantCount;
|
||||
/* named union is where all group members are in the union */
|
||||
int named_union = (group_name && ulen == flen && ulen > 0);
|
||||
|
|
@ -1084,9 +1083,7 @@ int main() {
|
|||
root.p = capn_getp(capn_root(&capn), 0, 1);
|
||||
read_CodeGeneratorRequest(&req, root);
|
||||
|
||||
capn_resolve(&req.nodes.p);
|
||||
|
||||
for (i = 0; i < req.nodes.p.len; i++) {
|
||||
for (i = 0; i < capn_len(req.nodes); i++) {
|
||||
n = calloc(1, sizeof(*n));
|
||||
get_Node(&n->n, req.nodes, i);
|
||||
insert_node(n);
|
||||
|
|
@ -1098,7 +1095,6 @@ int main() {
|
|||
break;
|
||||
|
||||
case Node__struct:
|
||||
capn_resolve(&n->n._struct.fields.p);
|
||||
n->next = all_structs;
|
||||
all_structs = n;
|
||||
break;
|
||||
|
|
@ -1109,17 +1105,16 @@ int main() {
|
|||
}
|
||||
|
||||
for (n = all_structs; n != NULL; n = n->next) {
|
||||
n->fields = calloc(n->n._struct.fields.p.len, sizeof(n->fields[0]));
|
||||
for (j = 0; j < n->n._struct.fields.p.len; j++) {
|
||||
n->fields = calloc(capn_len(n->n._struct.fields), sizeof(n->fields[0]));
|
||||
for (j = 0; j < capn_len(n->n._struct.fields); j++) {
|
||||
decode_field(n->fields, n->n._struct.fields, j);
|
||||
}
|
||||
}
|
||||
|
||||
for (n = all_files; n != NULL; n = n->next) {
|
||||
struct str b = STR_INIT;
|
||||
capn_resolve(&n->n.nestedNodes.p);
|
||||
|
||||
for (i = n->n.nestedNodes.p.len-1; i >= 0; i--) {
|
||||
for (i = capn_len(n->n.nestedNodes)-1; i >= 0; i--) {
|
||||
struct Node_NestedNode nest;
|
||||
get_Node_NestedNode(&nest, n->n.nestedNodes, i);
|
||||
resolve_names(&b, find_node(nest.id), nest.name, n);
|
||||
|
|
@ -1128,9 +1123,7 @@ int main() {
|
|||
str_release(&b);
|
||||
}
|
||||
|
||||
capn_resolve(&req.requestedFiles.p);
|
||||
|
||||
for (i = 0; i < req.requestedFiles.p.len; i++) {
|
||||
for (i = 0; i < capn_len(req.requestedFiles); i++) {
|
||||
struct CodeGeneratorRequest_RequestedFile file_req;
|
||||
static struct str b = STR_INIT;
|
||||
char *p;
|
||||
|
|
@ -1157,9 +1150,7 @@ int main() {
|
|||
str_addf(&HDR, "#error \"version mismatch between capn.h and generated code\"\n");
|
||||
str_addf(&HDR, "#endif\n\n");
|
||||
|
||||
capn_resolve(&file_req.imports.p);
|
||||
|
||||
for (j = 0; j < file_req.imports.p.len; j++) {
|
||||
for (j = 0; j < capn_len(file_req.imports); j++) {
|
||||
struct CodeGeneratorRequest_RequestedFile_Import im;
|
||||
get_CodeGeneratorRequest_RequestedFile_Import(&im, file_req.imports, j);
|
||||
str_addf(&HDR, "#include \"%s.h\"\n", im.name.str);
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ static const uint8_t capn_buf[8168] = {
|
|||
77,0,0,0,34,0,0,0,
|
||||
77,0,0,0,26,0,0,0,
|
||||
76,0,0,0,6,0,20,0,
|
||||
1,0,0,0,24,0,0,0,
|
||||
205,207,62,235,24,0,0,0,
|
||||
33,1,0,0,41,0,0,0,
|
||||
33,1,0,0,34,0,0,0,
|
||||
33,1,0,0,35,0,0,0,
|
||||
|
|
@ -390,7 +390,7 @@ static const uint8_t capn_buf[8168] = {
|
|||
77,0,0,0,34,0,0,0,
|
||||
77,0,0,0,26,0,0,0,
|
||||
76,0,0,0,6,0,20,0,
|
||||
1,0,0,0,24,0,0,0,
|
||||
237,201,62,235,24,0,0,0,
|
||||
33,1,0,0,41,0,0,0,
|
||||
33,1,0,0,34,0,0,0,
|
||||
33,1,0,0,35,0,0,0,
|
||||
|
|
@ -685,7 +685,7 @@ static const uint8_t capn_buf[8168] = {
|
|||
77,0,0,0,34,0,0,0,
|
||||
77,0,0,0,26,0,0,0,
|
||||
76,0,0,0,6,0,20,0,
|
||||
1,0,0,0,24,0,0,0,
|
||||
81,197,62,235,24,0,0,0,
|
||||
33,1,0,0,41,0,0,0,
|
||||
33,1,0,0,34,0,0,0,
|
||||
33,1,0,0,35,0,0,0,
|
||||
|
|
@ -1038,29 +1038,29 @@ uint64_t TestConstants_uint64Const = ((uint64_t) 0xab54a98cu << 32) | 0xeb1f0ad2
|
|||
union capn_conv_f32 TestConstants_float32Const = {0x449a5000u};
|
||||
union capn_conv_f64 TestConstants_float64Const = {((uint64_t) 0xc9b58b82u << 32) | 0xc0e0bb00u};
|
||||
capn_text TestConstants_textConst = {3,(char*)&capn_buf[0],(struct capn_segment*)&capn_seg};
|
||||
capn_data TestConstants_dataConst = {{2,0,1,0,3,(char*)&capn_buf[8],(struct capn_segment*)&capn_seg}};
|
||||
TestAllTypes_ptr TestConstants_structConst = {{1,0,48,160,0,(char*)&capn_buf[16],(struct capn_segment*)&capn_seg}};
|
||||
capn_data TestConstants_dataConst = {{2,0,0,0,1,0,3,(char*)&capn_buf[8],(struct capn_segment*)&capn_seg}};
|
||||
TestAllTypes_ptr TestConstants_structConst = {{1,0,0,0,48,20,0,(char*)&capn_buf[16],(struct capn_segment*)&capn_seg}};
|
||||
enum TestEnum TestConstants_enumConst = (enum TestEnum) 5u;
|
||||
capn_ptr TestConstants_voidListConst = {2,0,0,0,6,(char*)&capn_buf[0],(struct capn_segment*)&capn_seg};
|
||||
capn_list1 TestConstants_boolListConst = {{4,0,1,0,4,(char*)&capn_buf[1672],(struct capn_segment*)&capn_seg}};
|
||||
capn_list8 TestConstants_int8ListConst = {{2,0,1,0,2,(char*)&capn_buf[1680],(struct capn_segment*)&capn_seg}};
|
||||
capn_list16 TestConstants_int16ListConst = {{2,0,2,0,2,(char*)&capn_buf[1688],(struct capn_segment*)&capn_seg}};
|
||||
capn_list32 TestConstants_int32ListConst = {{2,0,4,0,2,(char*)&capn_buf[1696],(struct capn_segment*)&capn_seg}};
|
||||
capn_list64 TestConstants_int64ListConst = {{2,0,8,0,2,(char*)&capn_buf[1704],(struct capn_segment*)&capn_seg}};
|
||||
capn_list8 TestConstants_uint8ListConst = {{2,0,1,0,2,(char*)&capn_buf[1720],(struct capn_segment*)&capn_seg}};
|
||||
capn_list16 TestConstants_uint16ListConst = {{2,0,2,0,2,(char*)&capn_buf[1728],(struct capn_segment*)&capn_seg}};
|
||||
capn_list32 TestConstants_uint32ListConst = {{2,0,4,0,1,(char*)&capn_buf[1736],(struct capn_segment*)&capn_seg}};
|
||||
capn_list64 TestConstants_uint64ListConst = {{2,0,8,0,1,(char*)&capn_buf[1744],(struct capn_segment*)&capn_seg}};
|
||||
capn_list32 TestConstants_float32ListConst = {{2,0,4,0,4,(char*)&capn_buf[1752],(struct capn_segment*)&capn_seg}};
|
||||
capn_list64 TestConstants_float64ListConst = {{2,0,8,0,4,(char*)&capn_buf[1768],(struct capn_segment*)&capn_seg}};
|
||||
capn_ptr TestConstants_textListConst = {3,0,0,0,3,(char*)&capn_buf[1800],(struct capn_segment*)&capn_seg};
|
||||
capn_ptr TestConstants_dataListConst = {3,0,0,0,3,(char*)&capn_buf[1848],(struct capn_segment*)&capn_seg};
|
||||
TestAllTypes_list TestConstants_structListConst = {{7,0,48,160,3,(char*)&capn_buf[1912],(struct capn_segment*)&capn_seg}};
|
||||
capn_list16 TestConstants_enumListConst = {{2,0,2,0,2,(char*)&capn_buf[2584],(struct capn_segment*)&capn_seg}};
|
||||
capn_ptr TestConstants_voidListConst;
|
||||
capn_list1 TestConstants_boolListConst = {{4,0,0,0,1,0,4,(char*)&capn_buf[1672],(struct capn_segment*)&capn_seg}};
|
||||
capn_list8 TestConstants_int8ListConst = {{2,0,0,0,1,0,2,(char*)&capn_buf[1680],(struct capn_segment*)&capn_seg}};
|
||||
capn_list16 TestConstants_int16ListConst = {{2,0,0,0,2,0,2,(char*)&capn_buf[1688],(struct capn_segment*)&capn_seg}};
|
||||
capn_list32 TestConstants_int32ListConst = {{2,0,0,0,4,0,2,(char*)&capn_buf[1696],(struct capn_segment*)&capn_seg}};
|
||||
capn_list64 TestConstants_int64ListConst = {{2,0,0,0,8,0,2,(char*)&capn_buf[1704],(struct capn_segment*)&capn_seg}};
|
||||
capn_list8 TestConstants_uint8ListConst = {{2,0,0,0,1,0,2,(char*)&capn_buf[1720],(struct capn_segment*)&capn_seg}};
|
||||
capn_list16 TestConstants_uint16ListConst = {{2,0,0,0,2,0,2,(char*)&capn_buf[1728],(struct capn_segment*)&capn_seg}};
|
||||
capn_list32 TestConstants_uint32ListConst = {{2,0,0,0,4,0,1,(char*)&capn_buf[1736],(struct capn_segment*)&capn_seg}};
|
||||
capn_list64 TestConstants_uint64ListConst = {{2,0,0,0,8,0,1,(char*)&capn_buf[1744],(struct capn_segment*)&capn_seg}};
|
||||
capn_list32 TestConstants_float32ListConst = {{2,0,0,0,4,0,4,(char*)&capn_buf[1752],(struct capn_segment*)&capn_seg}};
|
||||
capn_list64 TestConstants_float64ListConst = {{2,0,0,0,8,0,4,(char*)&capn_buf[1768],(struct capn_segment*)&capn_seg}};
|
||||
capn_ptr TestConstants_textListConst = {3,0,0,0,0,0,3,(char*)&capn_buf[1800],(struct capn_segment*)&capn_seg};
|
||||
capn_ptr TestConstants_dataListConst = {3,0,0,0,0,0,3,(char*)&capn_buf[1848],(struct capn_segment*)&capn_seg};
|
||||
TestAllTypes_list TestConstants_structListConst = {{2,0,0,1,48,20,3,(char*)&capn_buf[1912],(struct capn_segment*)&capn_seg}};
|
||||
capn_list16 TestConstants_enumListConst = {{2,0,0,0,2,0,2,(char*)&capn_buf[2584],(struct capn_segment*)&capn_seg}};
|
||||
uint32_t globalInt = 12345u;
|
||||
capn_text globalText = {6,(char*)&capn_buf[2592],(struct capn_segment*)&capn_seg};
|
||||
TestAllTypes_ptr globalStruct = {{1,0,48,160,0,(char*)&capn_buf[2600],(struct capn_segment*)&capn_seg}};
|
||||
TestAllTypes_ptr derivedConstant = {{1,0,48,160,0,(char*)&capn_buf[2808],(struct capn_segment*)&capn_seg}};
|
||||
TestAllTypes_ptr globalStruct = {{1,0,0,0,48,20,0,(char*)&capn_buf[2600],(struct capn_segment*)&capn_seg}};
|
||||
TestAllTypes_ptr derivedConstant = {{1,0,0,0,48,20,0,(char*)&capn_buf[2808],(struct capn_segment*)&capn_seg}};
|
||||
|
||||
TestAllTypes_ptr new_TestAllTypes(struct capn_segment *s) {
|
||||
TestAllTypes_ptr p;
|
||||
|
|
@ -1153,24 +1153,23 @@ void set_TestAllTypes(const struct TestAllTypes *s, TestAllTypes_list l, int i)
|
|||
write_TestAllTypes(s, p);
|
||||
}
|
||||
capn_text capn_val1 = {3,(char*)&capn_buf[5368],(struct capn_segment*)&capn_seg};
|
||||
capn_data capn_val2 = {{2,0,1,0,3,(char*)&capn_buf[5376],(struct capn_segment*)&capn_seg}};
|
||||
TestAllTypes_ptr capn_val3 = {{1,0,48,160,0,(char*)&capn_buf[5384],(struct capn_segment*)&capn_seg}};
|
||||
capn_ptr capn_val4 = {2,0,0,0,6,(char*)&capn_buf[0],(struct capn_segment*)&capn_seg};
|
||||
capn_list1 capn_val5 = {{4,0,1,0,4,(char*)&capn_buf[7040],(struct capn_segment*)&capn_seg}};
|
||||
capn_list8 capn_val6 = {{2,0,1,0,2,(char*)&capn_buf[7048],(struct capn_segment*)&capn_seg}};
|
||||
capn_list16 capn_val7 = {{2,0,2,0,2,(char*)&capn_buf[7056],(struct capn_segment*)&capn_seg}};
|
||||
capn_list32 capn_val8 = {{2,0,4,0,2,(char*)&capn_buf[7064],(struct capn_segment*)&capn_seg}};
|
||||
capn_list64 capn_val9 = {{2,0,8,0,2,(char*)&capn_buf[7072],(struct capn_segment*)&capn_seg}};
|
||||
capn_list8 capn_val10 = {{2,0,1,0,2,(char*)&capn_buf[7088],(struct capn_segment*)&capn_seg}};
|
||||
capn_list16 capn_val11 = {{2,0,2,0,2,(char*)&capn_buf[7096],(struct capn_segment*)&capn_seg}};
|
||||
capn_list32 capn_val12 = {{2,0,4,0,1,(char*)&capn_buf[7104],(struct capn_segment*)&capn_seg}};
|
||||
capn_list64 capn_val13 = {{2,0,8,0,1,(char*)&capn_buf[7112],(struct capn_segment*)&capn_seg}};
|
||||
capn_list32 capn_val14 = {{2,0,4,0,4,(char*)&capn_buf[7120],(struct capn_segment*)&capn_seg}};
|
||||
capn_list64 capn_val15 = {{2,0,8,0,4,(char*)&capn_buf[7136],(struct capn_segment*)&capn_seg}};
|
||||
capn_ptr capn_val16 = {3,0,0,0,3,(char*)&capn_buf[7168],(struct capn_segment*)&capn_seg};
|
||||
capn_ptr capn_val17 = {3,0,0,0,3,(char*)&capn_buf[7216],(struct capn_segment*)&capn_seg};
|
||||
TestAllTypes_list capn_val18 = {{7,0,48,160,3,(char*)&capn_buf[7280],(struct capn_segment*)&capn_seg}};
|
||||
capn_list16 capn_val19 = {{2,0,2,0,2,(char*)&capn_buf[7952],(struct capn_segment*)&capn_seg}};
|
||||
capn_data capn_val2 = {{2,0,0,0,1,0,3,(char*)&capn_buf[5376],(struct capn_segment*)&capn_seg}};
|
||||
TestAllTypes_ptr capn_val3 = {{1,0,0,0,48,20,0,(char*)&capn_buf[5384],(struct capn_segment*)&capn_seg}};
|
||||
capn_list1 capn_val4 = {{4,0,0,0,1,0,4,(char*)&capn_buf[7040],(struct capn_segment*)&capn_seg}};
|
||||
capn_list8 capn_val5 = {{2,0,0,0,1,0,2,(char*)&capn_buf[7048],(struct capn_segment*)&capn_seg}};
|
||||
capn_list16 capn_val6 = {{2,0,0,0,2,0,2,(char*)&capn_buf[7056],(struct capn_segment*)&capn_seg}};
|
||||
capn_list32 capn_val7 = {{2,0,0,0,4,0,2,(char*)&capn_buf[7064],(struct capn_segment*)&capn_seg}};
|
||||
capn_list64 capn_val8 = {{2,0,0,0,8,0,2,(char*)&capn_buf[7072],(struct capn_segment*)&capn_seg}};
|
||||
capn_list8 capn_val9 = {{2,0,0,0,1,0,2,(char*)&capn_buf[7088],(struct capn_segment*)&capn_seg}};
|
||||
capn_list16 capn_val10 = {{2,0,0,0,2,0,2,(char*)&capn_buf[7096],(struct capn_segment*)&capn_seg}};
|
||||
capn_list32 capn_val11 = {{2,0,0,0,4,0,1,(char*)&capn_buf[7104],(struct capn_segment*)&capn_seg}};
|
||||
capn_list64 capn_val12 = {{2,0,0,0,8,0,1,(char*)&capn_buf[7112],(struct capn_segment*)&capn_seg}};
|
||||
capn_list32 capn_val13 = {{2,0,0,0,4,0,4,(char*)&capn_buf[7120],(struct capn_segment*)&capn_seg}};
|
||||
capn_list64 capn_val14 = {{2,0,0,0,8,0,4,(char*)&capn_buf[7136],(struct capn_segment*)&capn_seg}};
|
||||
capn_ptr capn_val15 = {3,0,0,0,0,0,3,(char*)&capn_buf[7168],(struct capn_segment*)&capn_seg};
|
||||
capn_ptr capn_val16 = {3,0,0,0,0,0,3,(char*)&capn_buf[7216],(struct capn_segment*)&capn_seg};
|
||||
TestAllTypes_list capn_val17 = {{2,0,0,1,48,20,3,(char*)&capn_buf[7280],(struct capn_segment*)&capn_seg}};
|
||||
capn_list16 capn_val18 = {{2,0,0,0,2,0,2,(char*)&capn_buf[7952],(struct capn_segment*)&capn_seg}};
|
||||
|
||||
TestDefaults_ptr new_TestDefaults(struct capn_segment *s) {
|
||||
TestDefaults_ptr p;
|
||||
|
|
@ -1206,68 +1205,65 @@ void read_TestDefaults(struct TestDefaults *s, TestDefaults_ptr p) {
|
|||
}
|
||||
s->enumField = (enum TestEnum) capn_read16(p.p, 36) ^ 5u;
|
||||
s->voidList = capn_getp(p.p, 3, 0);
|
||||
if (!s->voidList.type) {
|
||||
s->voidList = capn_val4;
|
||||
}
|
||||
s->boolList.p = capn_getp(p.p, 4, 0);
|
||||
if (!s->boolList.p.type) {
|
||||
s->boolList = capn_val5;
|
||||
s->boolList = capn_val4;
|
||||
}
|
||||
s->int8List.p = capn_getp(p.p, 5, 0);
|
||||
if (!s->int8List.p.type) {
|
||||
s->int8List = capn_val6;
|
||||
s->int8List = capn_val5;
|
||||
}
|
||||
s->int16List.p = capn_getp(p.p, 6, 0);
|
||||
if (!s->int16List.p.type) {
|
||||
s->int16List = capn_val7;
|
||||
s->int16List = capn_val6;
|
||||
}
|
||||
s->int32List.p = capn_getp(p.p, 7, 0);
|
||||
if (!s->int32List.p.type) {
|
||||
s->int32List = capn_val8;
|
||||
s->int32List = capn_val7;
|
||||
}
|
||||
s->int64List.p = capn_getp(p.p, 8, 0);
|
||||
if (!s->int64List.p.type) {
|
||||
s->int64List = capn_val9;
|
||||
s->int64List = capn_val8;
|
||||
}
|
||||
s->uInt8List.p = capn_getp(p.p, 9, 0);
|
||||
if (!s->uInt8List.p.type) {
|
||||
s->uInt8List = capn_val10;
|
||||
s->uInt8List = capn_val9;
|
||||
}
|
||||
s->uInt16List.p = capn_getp(p.p, 10, 0);
|
||||
if (!s->uInt16List.p.type) {
|
||||
s->uInt16List = capn_val11;
|
||||
s->uInt16List = capn_val10;
|
||||
}
|
||||
s->uInt32List.p = capn_getp(p.p, 11, 0);
|
||||
if (!s->uInt32List.p.type) {
|
||||
s->uInt32List = capn_val12;
|
||||
s->uInt32List = capn_val11;
|
||||
}
|
||||
s->uInt64List.p = capn_getp(p.p, 12, 0);
|
||||
if (!s->uInt64List.p.type) {
|
||||
s->uInt64List = capn_val13;
|
||||
s->uInt64List = capn_val12;
|
||||
}
|
||||
s->float32List.p = capn_getp(p.p, 13, 0);
|
||||
if (!s->float32List.p.type) {
|
||||
s->float32List = capn_val14;
|
||||
s->float32List = capn_val13;
|
||||
}
|
||||
s->float64List.p = capn_getp(p.p, 14, 0);
|
||||
if (!s->float64List.p.type) {
|
||||
s->float64List = capn_val15;
|
||||
s->float64List = capn_val14;
|
||||
}
|
||||
s->textList = capn_getp(p.p, 15, 0);
|
||||
if (!s->textList.type) {
|
||||
s->textList = capn_val16;
|
||||
s->textList = capn_val15;
|
||||
}
|
||||
s->dataList = capn_getp(p.p, 16, 0);
|
||||
if (!s->dataList.type) {
|
||||
s->dataList = capn_val17;
|
||||
s->dataList = capn_val16;
|
||||
}
|
||||
s->structList.p = capn_getp(p.p, 17, 0);
|
||||
if (!s->structList.p.type) {
|
||||
s->structList = capn_val18;
|
||||
s->structList = capn_val17;
|
||||
}
|
||||
s->enumList.p = capn_getp(p.p, 18, 0);
|
||||
if (!s->enumList.p.type) {
|
||||
s->enumList = capn_val19;
|
||||
s->enumList = capn_val18;
|
||||
}
|
||||
s->interfaceList = capn_getp(p.p, 19, 0);
|
||||
}
|
||||
|
|
@ -1288,22 +1284,22 @@ void write_TestDefaults(const struct TestDefaults *s, TestDefaults_ptr p) {
|
|||
capn_setp(p.p, 1, (s->dataField.p.data != capn_val2.p.data) ? s->dataField.p : capn_null);
|
||||
capn_setp(p.p, 2, (s->structField.p.data != capn_val3.p.data) ? s->structField.p : capn_null);
|
||||
capn_write16(p.p, 36, (uint16_t) s->enumField ^ 5u);
|
||||
capn_setp(p.p, 3, (s->voidList.data != capn_val4.data) ? s->voidList : capn_null);
|
||||
capn_setp(p.p, 4, (s->boolList.p.data != capn_val5.p.data) ? s->boolList.p : capn_null);
|
||||
capn_setp(p.p, 5, (s->int8List.p.data != capn_val6.p.data) ? s->int8List.p : capn_null);
|
||||
capn_setp(p.p, 6, (s->int16List.p.data != capn_val7.p.data) ? s->int16List.p : capn_null);
|
||||
capn_setp(p.p, 7, (s->int32List.p.data != capn_val8.p.data) ? s->int32List.p : capn_null);
|
||||
capn_setp(p.p, 8, (s->int64List.p.data != capn_val9.p.data) ? s->int64List.p : capn_null);
|
||||
capn_setp(p.p, 9, (s->uInt8List.p.data != capn_val10.p.data) ? s->uInt8List.p : capn_null);
|
||||
capn_setp(p.p, 10, (s->uInt16List.p.data != capn_val11.p.data) ? s->uInt16List.p : capn_null);
|
||||
capn_setp(p.p, 11, (s->uInt32List.p.data != capn_val12.p.data) ? s->uInt32List.p : capn_null);
|
||||
capn_setp(p.p, 12, (s->uInt64List.p.data != capn_val13.p.data) ? s->uInt64List.p : capn_null);
|
||||
capn_setp(p.p, 13, (s->float32List.p.data != capn_val14.p.data) ? s->float32List.p : capn_null);
|
||||
capn_setp(p.p, 14, (s->float64List.p.data != capn_val15.p.data) ? s->float64List.p : capn_null);
|
||||
capn_setp(p.p, 15, (s->textList.data != capn_val16.data) ? s->textList : capn_null);
|
||||
capn_setp(p.p, 16, (s->dataList.data != capn_val17.data) ? s->dataList : capn_null);
|
||||
capn_setp(p.p, 17, (s->structList.p.data != capn_val18.p.data) ? s->structList.p : capn_null);
|
||||
capn_setp(p.p, 18, (s->enumList.p.data != capn_val19.p.data) ? s->enumList.p : capn_null);
|
||||
capn_setp(p.p, 3, s->voidList);
|
||||
capn_setp(p.p, 4, (s->boolList.p.data != capn_val4.p.data) ? s->boolList.p : capn_null);
|
||||
capn_setp(p.p, 5, (s->int8List.p.data != capn_val5.p.data) ? s->int8List.p : capn_null);
|
||||
capn_setp(p.p, 6, (s->int16List.p.data != capn_val6.p.data) ? s->int16List.p : capn_null);
|
||||
capn_setp(p.p, 7, (s->int32List.p.data != capn_val7.p.data) ? s->int32List.p : capn_null);
|
||||
capn_setp(p.p, 8, (s->int64List.p.data != capn_val8.p.data) ? s->int64List.p : capn_null);
|
||||
capn_setp(p.p, 9, (s->uInt8List.p.data != capn_val9.p.data) ? s->uInt8List.p : capn_null);
|
||||
capn_setp(p.p, 10, (s->uInt16List.p.data != capn_val10.p.data) ? s->uInt16List.p : capn_null);
|
||||
capn_setp(p.p, 11, (s->uInt32List.p.data != capn_val11.p.data) ? s->uInt32List.p : capn_null);
|
||||
capn_setp(p.p, 12, (s->uInt64List.p.data != capn_val12.p.data) ? s->uInt64List.p : capn_null);
|
||||
capn_setp(p.p, 13, (s->float32List.p.data != capn_val13.p.data) ? s->float32List.p : capn_null);
|
||||
capn_setp(p.p, 14, (s->float64List.p.data != capn_val14.p.data) ? s->float64List.p : capn_null);
|
||||
capn_setp(p.p, 15, (s->textList.data != capn_val15.data) ? s->textList : capn_null);
|
||||
capn_setp(p.p, 16, (s->dataList.data != capn_val16.data) ? s->dataList : capn_null);
|
||||
capn_setp(p.p, 17, (s->structList.p.data != capn_val17.p.data) ? s->structList.p : capn_null);
|
||||
capn_setp(p.p, 18, (s->enumList.p.data != capn_val18.p.data) ? s->enumList.p : capn_null);
|
||||
capn_setp(p.p, 19, s->interfaceList);
|
||||
}
|
||||
void get_TestDefaults(struct TestDefaults *s, TestDefaults_list l, int i) {
|
||||
|
|
@ -1935,10 +1931,10 @@ void set_TestInterleavedGroups(const struct TestInterleavedGroups *s, TestInterl
|
|||
p.p = capn_getp(l.p, i, 0);
|
||||
write_TestInterleavedGroups(s, p);
|
||||
}
|
||||
TestUnion_ptr capn_val20 = {{1,0,64,16,0,(char*)&capn_buf[7960],(struct capn_segment*)&capn_seg}};
|
||||
TestUnion_ptr capn_val21 = {{1,0,64,16,0,(char*)&capn_buf[8040],(struct capn_segment*)&capn_seg}};
|
||||
TestUnnamedUnion_ptr capn_val22 = {{1,0,16,16,0,(char*)&capn_buf[8128],(struct capn_segment*)&capn_seg}};
|
||||
TestUnnamedUnion_ptr capn_val23 = {{1,1,16,16,0,(char*)&capn_buf[0],(struct capn_segment*)&capn_seg}};
|
||||
TestUnion_ptr capn_val19 = {{1,0,0,0,64,2,0,(char*)&capn_buf[7960],(struct capn_segment*)&capn_seg}};
|
||||
TestUnion_ptr capn_val20 = {{1,0,0,0,64,2,0,(char*)&capn_buf[8040],(struct capn_segment*)&capn_seg}};
|
||||
TestUnnamedUnion_ptr capn_val21 = {{1,0,0,0,16,2,0,(char*)&capn_buf[8128],(struct capn_segment*)&capn_seg}};
|
||||
TestUnnamedUnion_ptr capn_val22 = {{1,1,0,0,16,2,0,(char*)&capn_buf[0],(struct capn_segment*)&capn_seg}};
|
||||
|
||||
TestUnionDefaults_ptr new_TestUnionDefaults(struct capn_segment *s) {
|
||||
TestUnionDefaults_ptr p;
|
||||
|
|
@ -1954,27 +1950,27 @@ void read_TestUnionDefaults(struct TestUnionDefaults *s, TestUnionDefaults_ptr p
|
|||
capn_resolve(&p.p);
|
||||
s->s16s8s64s8Set.p = capn_getp(p.p, 0, 0);
|
||||
if (!s->s16s8s64s8Set.p.type) {
|
||||
s->s16s8s64s8Set = capn_val20;
|
||||
s->s16s8s64s8Set = capn_val19;
|
||||
}
|
||||
s->s0sps1s32Set.p = capn_getp(p.p, 1, 0);
|
||||
if (!s->s0sps1s32Set.p.type) {
|
||||
s->s0sps1s32Set = capn_val21;
|
||||
s->s0sps1s32Set = capn_val20;
|
||||
}
|
||||
s->unnamed1.p = capn_getp(p.p, 2, 0);
|
||||
if (!s->unnamed1.p.type) {
|
||||
s->unnamed1 = capn_val22;
|
||||
s->unnamed1 = capn_val21;
|
||||
}
|
||||
s->unnamed2.p = capn_getp(p.p, 3, 0);
|
||||
if (!s->unnamed2.p.type) {
|
||||
s->unnamed2 = capn_val23;
|
||||
s->unnamed2 = capn_val22;
|
||||
}
|
||||
}
|
||||
void write_TestUnionDefaults(const struct TestUnionDefaults *s, TestUnionDefaults_ptr p) {
|
||||
capn_resolve(&p.p);
|
||||
capn_setp(p.p, 0, (s->s16s8s64s8Set.p.data != capn_val20.p.data) ? s->s16s8s64s8Set.p : capn_null);
|
||||
capn_setp(p.p, 1, (s->s0sps1s32Set.p.data != capn_val21.p.data) ? s->s0sps1s32Set.p : capn_null);
|
||||
capn_setp(p.p, 2, (s->unnamed1.p.data != capn_val22.p.data) ? s->unnamed1.p : capn_null);
|
||||
capn_setp(p.p, 3, (s->unnamed2.p.data != capn_val23.p.data) ? s->unnamed2.p : capn_null);
|
||||
capn_setp(p.p, 0, (s->s16s8s64s8Set.p.data != capn_val19.p.data) ? s->s16s8s64s8Set.p : capn_null);
|
||||
capn_setp(p.p, 1, (s->s0sps1s32Set.p.data != capn_val20.p.data) ? s->s0sps1s32Set.p : capn_null);
|
||||
capn_setp(p.p, 2, (s->unnamed1.p.data != capn_val21.p.data) ? s->unnamed1.p : capn_null);
|
||||
capn_setp(p.p, 3, (s->unnamed2.p.data != capn_val22.p.data) ? s->unnamed2.p : capn_null);
|
||||
}
|
||||
void get_TestUnionDefaults(struct TestUnionDefaults *s, TestUnionDefaults_list l, int i) {
|
||||
TestUnionDefaults_ptr p;
|
||||
|
|
@ -2577,7 +2573,7 @@ void set_TestFieldZeroIsBit(const struct TestFieldZeroIsBit *s, TestFieldZeroIsB
|
|||
p.p = capn_getp(l.p, i, 0);
|
||||
write_TestFieldZeroIsBit(s, p);
|
||||
}
|
||||
TestLists_ptr capn_val24 = {{1,1,0,80,0,(char*)&capn_buf[56],(struct capn_segment*)&capn_seg}};
|
||||
TestLists_ptr capn_val23 = {{1,1,0,0,0,10,0,(char*)&capn_buf[56],(struct capn_segment*)&capn_seg}};
|
||||
|
||||
TestListDefaults_ptr new_TestListDefaults(struct capn_segment *s) {
|
||||
TestListDefaults_ptr p;
|
||||
|
|
@ -2593,12 +2589,12 @@ void read_TestListDefaults(struct TestListDefaults *s, TestListDefaults_ptr p) {
|
|||
capn_resolve(&p.p);
|
||||
s->lists.p = capn_getp(p.p, 0, 0);
|
||||
if (!s->lists.p.type) {
|
||||
s->lists = capn_val24;
|
||||
s->lists = capn_val23;
|
||||
}
|
||||
}
|
||||
void write_TestListDefaults(const struct TestListDefaults *s, TestListDefaults_ptr p) {
|
||||
capn_resolve(&p.p);
|
||||
capn_setp(p.p, 0, (s->lists.p.data != capn_val24.p.data) ? s->lists.p : capn_null);
|
||||
capn_setp(p.p, 0, (s->lists.p.data != capn_val23.p.data) ? s->lists.p : capn_null);
|
||||
}
|
||||
void get_TestListDefaults(struct TestListDefaults *s, TestListDefaults_list l, int i) {
|
||||
TestListDefaults_ptr p;
|
||||
|
|
@ -2732,7 +2728,7 @@ void set_TestOldVersion(const struct TestOldVersion *s, TestOldVersion_list l, i
|
|||
p.p = capn_getp(l.p, i, 0);
|
||||
write_TestOldVersion(s, p);
|
||||
}
|
||||
capn_text capn_val25 = {3,(char*)&capn_buf[8160],(struct capn_segment*)&capn_seg};
|
||||
capn_text capn_val24 = {3,(char*)&capn_buf[8160],(struct capn_segment*)&capn_seg};
|
||||
|
||||
TestNewVersion_ptr new_TestNewVersion(struct capn_segment *s) {
|
||||
TestNewVersion_ptr p;
|
||||
|
|
@ -2750,7 +2746,7 @@ void read_TestNewVersion(struct TestNewVersion *s, TestNewVersion_ptr p) {
|
|||
s->old2 = capn_get_text(p.p, 0, capn_val0);
|
||||
s->old3.p = capn_getp(p.p, 1, 0);
|
||||
s->new1 = (int64_t) capn_read64(p.p, 8) ^ ((uint64_t) 0u << 32) ^ 0x3dbu;
|
||||
s->new2 = capn_get_text(p.p, 2, capn_val25);
|
||||
s->new2 = capn_get_text(p.p, 2, capn_val24);
|
||||
}
|
||||
void write_TestNewVersion(const struct TestNewVersion *s, TestNewVersion_ptr p) {
|
||||
capn_resolve(&p.p);
|
||||
|
|
@ -2758,7 +2754,7 @@ void write_TestNewVersion(const struct TestNewVersion *s, TestNewVersion_ptr p)
|
|||
capn_set_text(p.p, 0, s->old2);
|
||||
capn_setp(p.p, 1, s->old3.p);
|
||||
capn_write64(p.p, 8, (uint64_t) s->new1 ^ ((uint64_t) 0u << 32) ^ 0x3dbu);
|
||||
capn_set_text(p.p, 2, (s->new2.str != capn_val25.str) ? s->new2 : capn_val0);
|
||||
capn_set_text(p.p, 2, (s->new2.str != capn_val24.str) ? s->new2 : capn_val0);
|
||||
}
|
||||
void get_TestNewVersion(struct TestNewVersion *s, TestNewVersion_list l, int i) {
|
||||
TestNewVersion_ptr p;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue