summaryrefslogtreecommitdiff
path: root/upb/sink.c
diff options
context:
space:
mode:
Diffstat (limited to 'upb/sink.c')
-rw-r--r--upb/sink.c70
1 files changed, 0 insertions, 70 deletions
diff --git a/upb/sink.c b/upb/sink.c
index 6ef5718..7a7eeb4 100644
--- a/upb/sink.c
+++ b/upb/sink.c
@@ -15,73 +15,3 @@ bool upb_bufsrc_putbuf(const char *buf, size_t len, upb_bytessink sink) {
}
return ret;
}
-
-struct upb_bufsink {
- upb_byteshandler handler;
- upb_bytessink sink;
- upb_env *env;
- char *ptr;
- size_t len, size;
-};
-
-static void *upb_bufsink_start(void *_sink, const void *hd, size_t size_hint) {
- upb_bufsink *sink = _sink;
- UPB_UNUSED(hd);
- UPB_UNUSED(size_hint);
- sink->len = 0;
- return sink;
-}
-
-static size_t upb_bufsink_string(void *_sink, const void *hd, const char *ptr,
- size_t len, const upb_bufhandle *handle) {
- upb_bufsink *sink = _sink;
- size_t new_size = sink->size;
-
- UPB_ASSERT(new_size > 0);
- UPB_UNUSED(hd);
- UPB_UNUSED(handle);
-
- while (sink->len + len > new_size) {
- new_size *= 2;
- }
-
- if (new_size != sink->size) {
- sink->ptr = upb_env_realloc(sink->env, sink->ptr, sink->size, new_size);
- sink->size = new_size;
- }
-
- memcpy(sink->ptr + sink->len, ptr, len);
- sink->len += len;
-
- return len;
-}
-
-upb_bufsink *upb_bufsink_new(upb_env *env) {
- upb_bufsink *sink = upb_env_malloc(env, sizeof(upb_bufsink));
- upb_byteshandler_init(&sink->handler);
- upb_byteshandler_setstartstr(&sink->handler, upb_bufsink_start, NULL);
- upb_byteshandler_setstring(&sink->handler, upb_bufsink_string, NULL);
-
- upb_bytessink_reset(&sink->sink, &sink->handler, sink);
-
- sink->env = env;
- sink->size = 32;
- sink->ptr = upb_env_malloc(env, sink->size);
- sink->len = 0;
-
- return sink;
-}
-
-void upb_bufsink_free(upb_bufsink *sink) {
- upb_env_free(sink->env, sink->ptr);
- upb_env_free(sink->env, sink);
-}
-
-upb_bytessink *upb_bufsink_sink(upb_bufsink *sink) {
- return &sink->sink;
-}
-
-const char *upb_bufsink_getdata(const upb_bufsink *sink, size_t *len) {
- *len = sink->len;
- return sink->ptr;
-}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback