From 7b7346a73c08c24fa1f7735d960d1a712cebf8b1 Mon Sep 17 00:00:00 2001 From: Theo Hill Date: Sat, 6 Aug 2016 17:42:19 -0700 Subject: [PATCH] lib: make buf arg const in write_fd pointer For capn_write_fd() the write() function would be ideal to pass as write_fd, but write() has type ssize_t (*)(int, const void *, size_t), whereas write_fd expects ssize_t (*)(int, void *, size_t). Passing write() directly with GCC 5.4 causes a warning -Wincompatible-pointer-types (on by default). --- lib/capn-malloc.c | 4 ++-- lib/capnp_c.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/capn-malloc.c b/lib/capn-malloc.c index 92714b9..a3c2de0 100644 --- a/lib/capn-malloc.c +++ b/lib/capn-malloc.c @@ -304,7 +304,7 @@ capn_write_mem(struct capn *c, uint8_t *p, size_t sz, int packed) return headersz+datasz; } -static int _write_fd(ssize_t (*write_fd)(int fd, void *p, size_t count), int fd, void *p, size_t count) +static int _write_fd(ssize_t (*write_fd)(int fd, const void *p, size_t count), int fd, void *p, size_t count) { ssize_t ret; size_t sent = 0; @@ -323,7 +323,7 @@ static int _write_fd(ssize_t (*write_fd)(int fd, void *p, size_t count), int fd, return 0; } -int capn_write_fd(struct capn *c, ssize_t (*write_fd)(int fd, void *p, size_t count), int fd, int packed) +int capn_write_fd(struct capn *c, ssize_t (*write_fd)(int fd, const void *p, size_t count), int fd, int packed) { unsigned char buf[4096]; struct capn_segment *seg; diff --git a/lib/capnp_c.h b/lib/capnp_c.h index 9fa2718..a1133df 100644 --- a/lib/capnp_c.h +++ b/lib/capnp_c.h @@ -266,7 +266,7 @@ int capn_init_mem(struct capn *c, const uint8_t *p, size_t sz, int packed); */ /* TODO */ /*int capn_write_fp(struct capn *c, FILE *f, int packed);*/ -int capn_write_fd(struct capn *c, ssize_t (*write_fd)(int fd, void *p, size_t count), int fd, int packed); +int capn_write_fd(struct capn *c, ssize_t (*write_fd)(int fd, const void *p, size_t count), int fd, int packed); int capn_write_mem(struct capn *c, uint8_t *p, size_t sz, int packed); void capn_free(struct capn *c);