Merge branch 'kylemanna' into merge

Conflicts: (manually resolved)
	capn-malloc.c
	capn-stream.c
	capn-test.cpp
	capn.c
	capn.h
	compiler/capnpc-c.c
This commit is contained in:
David Lamparter 2016-02-28 12:32:59 +01:00
commit 02268ff818
5 changed files with 23 additions and 19 deletions

View file

@ -80,7 +80,7 @@ int capn_deflate(struct capn_stream* s) {
continue;
default:
if (s->avail_out < 1 + sz)
if (s->avail_out < 1U + sz)
return CAPN_NEED_MORE;
*(s->next_out++) = hdr;
@ -167,7 +167,7 @@ int capn_inflate(struct capn_stream* s) {
if (hdr & (1 << i))
sz++;
}
if (s->avail_in < 1 + sz)
if (s->avail_in < 1U + sz)
return CAPN_NEED_MORE;
s->next_in += 1;

View file

@ -274,11 +274,11 @@ static void getSegments(struct capn *c, struct capn_segment **s, size_t num) {
ASSERT_EQ(num, c->segnum);
s[0] = c->seglist;
for (unsigned i = 1; i < num; i++) {
for (size_t i = 1; i < num; i++) {
s[i] = s[i-1]->next;
}
for (unsigned i = 0; i < num; i++) {
for (size_t i = 0; i < num; i++) {
EXPECT_EQ(s[i]->id, i);
}
}
@ -315,7 +315,7 @@ TEST(WireFormat, StructRoundTrip_OneSegmentPerAllocation) {
struct capn ctx2;
memset(&ctx2, 0, sizeof(ctx2));
for (unsigned i = 0; i < sizeof(segments)/sizeof(segments[0]); i++) {
for (size_t i = 0; i < sizeof(segments)/sizeof(segments[0]); i++) {
capn_append_segment(&ctx2, segments[i]);
}
@ -371,7 +371,7 @@ TEST(WireFormat, StructRoundTrip_OneSegmentPerAllocation_NoTag) {
struct capn ctx2;
memset(&ctx2, 0, sizeof(ctx2));
for (unsigned i = 0; i < sizeof(segments)/sizeof(segments[0]); i++) {
for (size_t i = 0; i < sizeof(segments)/sizeof(segments[0]); i++) {
capn_append_segment(&ctx2, segments[i]);
}
@ -421,7 +421,7 @@ TEST(WireFormat, StructRoundTrip_MultipleSegmentsWithMultipleAllocations) {
struct capn ctx2;
memset(&ctx2, 0, sizeof(ctx2));
for (unsigned i = 0; i < sizeof(segments)/sizeof(segments[0]); i++) {
for (size_t i = 0; i < sizeof(segments)/sizeof(segments[0]); i++) {
capn_append_segment(&ctx2, segments[i]);
}

16
capn.c
View file

@ -186,7 +186,7 @@ end:
}
static struct capn_segment *lookup_segment(struct capn* c, struct capn_segment *s, uint32_t id) {
struct capn_tree **x = &c->segtree;
struct capn_tree **x;
struct capn_segment *y = NULL;
if (s && s->id == id)
@ -195,6 +195,7 @@ static struct capn_segment *lookup_segment(struct capn* c, struct capn_segment *
return NULL;
if (id < c->segnum) {
x = &c->segtree;
while (*x) {
y = (struct capn_segment*) *x;
if (id == y->id) {
@ -205,6 +206,9 @@ static struct capn_segment *lookup_segment(struct capn* c, struct capn_segment *
x = &y->hdr.link[1];
}
}
} else {
/* Otherwise `x` may be uninitialized */
return NULL;
}
s = c->lookup ? c->lookup(c->user, id) : NULL;
@ -229,7 +233,7 @@ static struct capn_segment *lookup_segment(struct capn* c, struct capn_segment *
static uint64_t lookup_double(struct capn_segment **s, char **d, uint64_t val) {
uint64_t far, tag;
uint32_t off = (U32(val) >> 3) * 8;
size_t off = (U32(val) >> 3) * 8;
char *p;
if ((*s = lookup_segment((*s)->capn, *s, U32(val >> 32))) == NULL) {
@ -264,7 +268,7 @@ static uint64_t lookup_double(struct capn_segment **s, char **d, uint64_t val) {
}
static uint64_t lookup_far(struct capn_segment **s, char **d, uint64_t val) {
uint32_t off = (U32(val) >> 3) * 8;
size_t off = (U32(val) >> 3) * 8;
if ((*s = lookup_segment((*s)->capn, *s, U32(val >> 32))) == NULL) {
return 0;
@ -369,7 +373,7 @@ static capn_ptr read_ptr(struct capn_segment *s, char *d) {
e = d + ret.len * 8;
break;
case COMPOSITE_LIST:
if (d+8-s->data > s->len) {
if ((size_t)((d+8) - s->data) > s->len) {
goto err;
}
@ -394,7 +398,7 @@ static capn_ptr read_ptr(struct capn_segment *s, char *d) {
goto err;
}
if (e - s->data > s->len)
if ((size_t)(e - s->data) > s->len)
goto err;
ret.data = d;
@ -664,7 +668,7 @@ static int copy_ptr(struct capn_segment *seg, char *data, struct capn_ptr *t, st
struct capn_segment *cs = c->copylist;
/* need to allocate a struct copy */
if (!cs || cs->len + sizeof(*n) > cs->cap) {
if (!cs || cs->len + (int)sizeof(*n) > cs->cap) {
cs = c->create_local ? c->create_local(c->user, sizeof(*n)) : NULL;
if (!cs) {
/* can't allocate a copy structure */

6
capn.h
View file

@ -94,7 +94,7 @@ struct capn_segment {
uint32_t id;
/* user settable */
char *data;
unsigned len, cap;
size_t len, cap;
void *user;
};
@ -262,9 +262,9 @@ void capn_reset_copy(struct capn *c);
*/
struct capn_stream {
const uint8_t *next_in;
unsigned avail_in;
size_t avail_in;
uint8_t *next_out;
unsigned avail_out;
size_t avail_out;
unsigned zeros, raw;
};

View file

@ -930,7 +930,7 @@ static void define_struct(struct node *n) {
}
#if 0
Commenting out interfaces until the RPC protocol has been specified
/* Commenting out interfaces until the RPC protocol has been spec'd */
static int find_offset(struct str *v, int inc, uint64_t mask) {
int i, j;
union {uint64_t u; char c[8];} umask;
@ -1248,7 +1248,7 @@ int main() {
fprintf(srcf, "static const capn_ptr capn_null = {CAPN_NULL};\n");
if (g_valseg.len > 8) {
fprintf(srcf, "static const uint8_t capn_buf[%d] = {", g_valseg.len-8);
fprintf(srcf, "static const uint8_t capn_buf[%lu] = {", g_valseg.len-8);
for (j = 8; j < g_valseg.len; j++) {
if (j > 8)
fprintf(srcf, ",");
@ -1258,7 +1258,7 @@ int main() {
}
fprintf(srcf, "\n};\n");
fprintf(srcf, "static const struct capn_segment capn_seg = {{0},0,0,0,(char*)&capn_buf[0],%d,%d};\n",
fprintf(srcf, "static const struct capn_segment capn_seg = {{0},0,0,0,(char*)&capn_buf[0],%lu,%lu};\n",
g_valseg.len-8, g_valseg.len-8);
}