Remove interface code
This commit is contained in:
parent
f4f0ccabf8
commit
e6c57a665e
3 changed files with 3 additions and 40 deletions
|
|
@ -148,11 +148,6 @@ static void setupStruct(struct capn *ctx) {
|
||||||
EXPECT_EQ(0, capn_setp(recurse, 0, recurse));
|
EXPECT_EQ(0, capn_setp(recurse, 0, recurse));
|
||||||
EXPECT_EQ(0, capn_setp(ptr, 4, recurse));
|
EXPECT_EQ(0, capn_setp(ptr, 4, recurse));
|
||||||
|
|
||||||
capn_ptr interface = capn_new_interface(ptr.seg, 0, 0);
|
|
||||||
EXPECT_EQ(CAPN_INTERFACE, interface.type);
|
|
||||||
EXPECT_EQ(0, interface.datasz);
|
|
||||||
EXPECT_EQ(0, interface.ptrsz);
|
|
||||||
EXPECT_EQ(0, capn_setp(ptr, 5, interface));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void checkStruct(struct capn *ctx) {
|
static void checkStruct(struct capn *ctx) {
|
||||||
|
|
@ -233,11 +228,6 @@ static void checkStruct(struct capn *ctx) {
|
||||||
EXPECT_EQ(recurse.seg, recurse_mbr.seg);
|
EXPECT_EQ(recurse.seg, recurse_mbr.seg);
|
||||||
EXPECT_EQ(recurse.data, recurse_mbr.data);
|
EXPECT_EQ(recurse.data, recurse_mbr.data);
|
||||||
EXPECT_EQ(CAPN_NULL, capn_getp(recurse, 1).type);
|
EXPECT_EQ(CAPN_NULL, capn_getp(recurse, 1).type);
|
||||||
|
|
||||||
capn_ptr interface = capn_getp(ptr, 5);
|
|
||||||
EXPECT_EQ(CAPN_INTERFACE, interface.type);
|
|
||||||
EXPECT_EQ(0, interface.datasz);
|
|
||||||
EXPECT_EQ(0, interface.ptrsz);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST(WireFormat, StructRoundTrip_OneSegment) {
|
TEST(WireFormat, StructRoundTrip_OneSegment) {
|
||||||
|
|
|
||||||
27
capn.c
27
capn.c
|
|
@ -8,7 +8,6 @@
|
||||||
#define STRUCT_PTR 0
|
#define STRUCT_PTR 0
|
||||||
#define LIST_PTR 1
|
#define LIST_PTR 1
|
||||||
#define FAR_PTR 2
|
#define FAR_PTR 2
|
||||||
#define INTERFACE_PTR 3
|
|
||||||
#define DOUBLE_PTR 6
|
#define DOUBLE_PTR 6
|
||||||
|
|
||||||
#define VOID_LIST 0
|
#define VOID_LIST 0
|
||||||
|
|
@ -332,10 +331,6 @@ static capn_ptr read_ptr(struct capn_segment *s, char *d) {
|
||||||
ret.type = val ? CAPN_STRUCT : CAPN_NULL;
|
ret.type = val ? CAPN_STRUCT : CAPN_NULL;
|
||||||
goto struct_common;
|
goto struct_common;
|
||||||
|
|
||||||
case INTERFACE_PTR:
|
|
||||||
ret.type = CAPN_INTERFACE;
|
|
||||||
goto struct_common;
|
|
||||||
|
|
||||||
struct_common:
|
struct_common:
|
||||||
ret.datasz = U32(U16(val >> 32)) * 8;
|
ret.datasz = U32(U16(val >> 32)) * 8;
|
||||||
ret.ptrsz = U32(U16(val >> 48)) * 8;
|
ret.ptrsz = U32(U16(val >> 48)) * 8;
|
||||||
|
|
@ -396,6 +391,9 @@ static capn_ptr read_ptr(struct capn_segment *s, char *d) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (e - s->data > s->len)
|
if (e - s->data > s->len)
|
||||||
|
|
@ -425,7 +423,6 @@ capn_ptr capn_getp(capn_ptr p, int off) {
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
case CAPN_INTERFACE:
|
|
||||||
case CAPN_LIST_MEMBER:
|
case CAPN_LIST_MEMBER:
|
||||||
case CAPN_STRUCT:
|
case CAPN_STRUCT:
|
||||||
off *= 8;
|
off *= 8;
|
||||||
|
|
@ -457,7 +454,6 @@ static int data_size(struct capn_ptr p) {
|
||||||
return p.datasz;
|
return p.datasz;
|
||||||
case CAPN_PTR_LIST:
|
case CAPN_PTR_LIST:
|
||||||
return p.len*8;
|
return p.len*8;
|
||||||
case CAPN_INTERFACE:
|
|
||||||
case CAPN_STRUCT:
|
case CAPN_STRUCT:
|
||||||
return p.datasz + p.ptrsz;
|
return p.datasz + p.ptrsz;
|
||||||
case CAPN_COMPOSITE_LIST:
|
case CAPN_COMPOSITE_LIST:
|
||||||
|
|
@ -473,10 +469,6 @@ static void write_ptr_tag(char *d, capn_ptr p, int off) {
|
||||||
uint64_t val = U64(U32(I32(off/8) << 2));
|
uint64_t val = U64(U32(I32(off/8) << 2));
|
||||||
|
|
||||||
switch (p.type) {
|
switch (p.type) {
|
||||||
case CAPN_INTERFACE:
|
|
||||||
val |= INTERFACE_PTR | (U64(p.datasz/8) << 32) | (U64(p.ptrsz/8) << 48);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case CAPN_STRUCT:
|
case CAPN_STRUCT:
|
||||||
val |= STRUCT_PTR | (U64(p.datasz/8) << 32) | (U64(p.ptrsz/8) << 48);
|
val |= STRUCT_PTR | (U64(p.datasz/8) << 32) | (U64(p.ptrsz/8) << 48);
|
||||||
break;
|
break;
|
||||||
|
|
@ -592,8 +584,6 @@ struct copy {
|
||||||
|
|
||||||
static capn_ptr new_clone(struct capn_segment *s, capn_ptr p) {
|
static capn_ptr new_clone(struct capn_segment *s, capn_ptr p) {
|
||||||
switch (p.type) {
|
switch (p.type) {
|
||||||
case CAPN_INTERFACE:
|
|
||||||
return capn_new_interface(s, p.datasz, p.ptrsz/8);
|
|
||||||
case CAPN_STRUCT:
|
case CAPN_STRUCT:
|
||||||
case CAPN_LIST_MEMBER:
|
case CAPN_LIST_MEMBER:
|
||||||
return capn_new_struct(s, p.datasz, p.ptrsz/8);
|
return capn_new_struct(s, p.datasz, p.ptrsz/8);
|
||||||
|
|
@ -691,7 +681,6 @@ static int copy_ptr(struct capn_segment *seg, char *data, struct capn_ptr *t, st
|
||||||
* be valid */
|
* be valid */
|
||||||
switch (t->type) {
|
switch (t->type) {
|
||||||
case CAPN_STRUCT:
|
case CAPN_STRUCT:
|
||||||
case CAPN_INTERFACE:
|
|
||||||
if (t->datasz) {
|
if (t->datasz) {
|
||||||
memcpy(t->data, f->data, t->datasz);
|
memcpy(t->data, f->data, t->datasz);
|
||||||
t->data += t->datasz;
|
t->data += t->datasz;
|
||||||
|
|
@ -780,7 +769,6 @@ int capn_setp(capn_ptr p, int off, capn_ptr tgt) {
|
||||||
goto copy_ptr;
|
goto copy_ptr;
|
||||||
|
|
||||||
case CAPN_STRUCT:
|
case CAPN_STRUCT:
|
||||||
case CAPN_INTERFACE:
|
|
||||||
case CAPN_LIST_MEMBER:
|
case CAPN_LIST_MEMBER:
|
||||||
off *= 8;
|
off *= 8;
|
||||||
if (off >= p.ptrsz)
|
if (off >= p.ptrsz)
|
||||||
|
|
@ -968,15 +956,6 @@ capn_ptr capn_new_struct(struct capn_segment *seg, int datasz, int ptrs) {
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
capn_ptr capn_new_interface(struct capn_segment *seg, int datasz, int ptrs) {
|
|
||||||
capn_ptr p = {CAPN_INTERFACE};
|
|
||||||
p.seg = seg;
|
|
||||||
p.datasz = (datasz + 7) & ~7;
|
|
||||||
p.ptrsz = ptrs * 8;
|
|
||||||
new_object(&p, p.datasz + p.ptrsz);
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
|
|
||||||
capn_ptr capn_new_list(struct capn_segment *seg, int sz, int datasz, int ptrs) {
|
capn_ptr capn_new_list(struct capn_segment *seg, int sz, int datasz, int ptrs) {
|
||||||
capn_ptr p = {CAPN_LIST};
|
capn_ptr p = {CAPN_LIST};
|
||||||
p.seg = seg;
|
p.seg = seg;
|
||||||
|
|
|
||||||
6
capn.h
6
capn.h
|
|
@ -100,7 +100,6 @@ enum CAPN_TYPE {
|
||||||
CAPN_LIST = 2,
|
CAPN_LIST = 2,
|
||||||
CAPN_PTR_LIST = 3,
|
CAPN_PTR_LIST = 3,
|
||||||
CAPN_BIT_LIST = 4,
|
CAPN_BIT_LIST = 4,
|
||||||
CAPN_INTERFACE = 5,
|
|
||||||
CAPN_LIST_MEMBER = 6,
|
CAPN_LIST_MEMBER = 6,
|
||||||
CAPN_COMPOSITE_LIST = 7
|
CAPN_COMPOSITE_LIST = 7
|
||||||
};
|
};
|
||||||
|
|
@ -154,7 +153,6 @@ int capn_setp(capn_ptr p, int off, capn_ptr tgt);
|
||||||
capn_text capn_get_text(capn_ptr p, int off, capn_text def);
|
capn_text capn_get_text(capn_ptr p, int off, capn_text def);
|
||||||
capn_data capn_get_data(capn_ptr p, int off);
|
capn_data capn_get_data(capn_ptr p, int off);
|
||||||
int capn_set_text(capn_ptr p, int off, capn_text tgt);
|
int capn_set_text(capn_ptr p, int off, capn_text tgt);
|
||||||
CAPN_INLINE int capn_set_data(capn_ptr p, int off, capn_data tgt);
|
|
||||||
|
|
||||||
/* capn_get_* functions get data from a list
|
/* capn_get_* functions get data from a list
|
||||||
* The length of the list is given by p->size
|
* The length of the list is given by p->size
|
||||||
|
|
@ -386,10 +384,6 @@ CAPN_INLINE uint64_t capn_from_f64(double v) {
|
||||||
return u.u;
|
return u.u;
|
||||||
}
|
}
|
||||||
|
|
||||||
CAPN_INLINE int capn_set_data(capn_ptr p, int off, capn_data d) {
|
|
||||||
return capn_setp(p, off, d.p);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue