summaryrefslogtreecommitdiff
path: root/src/upb_string.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/upb_string.c')
-rw-r--r--src/upb_string.c47
1 files changed, 0 insertions, 47 deletions
diff --git a/src/upb_string.c b/src/upb_string.c
deleted file mode 100644
index 91ab9ae..0000000
--- a/src/upb_string.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * upb - a minimalist implementation of protocol buffers.
- *
- * Copyright (c) 2010 Joshua Haberman. See LICENSE for details.
- */
-
-#include "upb_string.h"
-
-#include <stdlib.h>
-
-#define UPB_STRING_UNFINALIZED -1
-
-static uint32_t upb_round_up_pow2(uint32_t v) {
- // http://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2
- v--;
- v |= v >> 1;
- v |= v >> 2;
- v |= v >> 4;
- v |= v >> 8;
- v |= v >> 16;
- v++;
- return v;
-}
-
-upb_string *upb_string_new() {
- upb_string *str = malloc(sizeof(*str));
- str->ptr = NULL;
- str->size = 0;
- str->len = UPB_STRING_UNFINALIZED;
- upb_atomic_refcount_init(&str->refcount, 1);
- return str;
-}
-
-void _upb_string_free(upb_string *str) {
- if(str->ptr) free(str->ptr);
- free(str);
-}
-
-char *upb_string_getrwbuf(upb_string *str, upb_strlen_t len) {
- assert(str->len == UPB_STRING_UNFINALIZED);
- if (str->size < len) {
- str->size = upb_round_up_pow2(len);
- str->ptr = realloc(str->ptr, str->size);
- }
- str->len = len;
- return str->ptr;
-}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback