From 28ec9a1fa0f9b1d741920dfa8afc91fa2532c43d Mon Sep 17 00:00:00 2001 From: Joshua Haberman Date: Fri, 9 Jul 2010 20:20:33 -0700 Subject: Split src/ into core/ and stream/. --- src/upb_string.c | 47 ----------------------------------------------- 1 file changed, 47 deletions(-) delete mode 100644 src/upb_string.c (limited to 'src/upb_string.c') 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 - -#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; -} -- cgit v1.2.3