remove CAPN_COMPOSITE_LIST and add capn_len

This commit is contained in:
James McKaskill 2013-09-16 16:53:33 -04:00
parent 59f827e93d
commit ff44e4df26
6 changed files with 165 additions and 180 deletions

View file

@ -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);

View file

@ -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;