diff options
author | Joshua Haberman <joshua@reverberate.org> | 2009-12-22 06:11:58 -0800 |
---|---|---|
committer | Joshua Haberman <joshua@reverberate.org> | 2009-12-22 06:11:58 -0800 |
commit | a230cf5053ce553d92ba5efb51324149fae201b6 (patch) | |
tree | c37e7d83b1d1d93d6a0693de074121ce06a0a6f4 /src/upb_data.c | |
parent | 7dd113baa80af735073ce7131e46c66a6b69d01f (diff) |
More work.
Diffstat (limited to 'src/upb_data.c')
-rw-r--r-- | src/upb_data.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/upb_data.c b/src/upb_data.c index 66e9885..3c8b244 100644 --- a/src/upb_data.c +++ b/src/upb_data.c @@ -19,6 +19,10 @@ static uint32_t round_up_to_pow2(uint32_t v) return v; } +static void check_not_frozen(upb_data *d) { + if(upb_data_hasflag(d, UPB_DATA_FROZEN)) abort(); +} + upb_string *upb_string_new() { upb_string *s = malloc(sizeof(*s)); s->byte_size = 0; @@ -35,14 +39,9 @@ static void _upb_string_free(upb_string *s) free(s); } -INLINE upb_string *upb_string_getref(upb_string *s, upb_flags_t ref_flags) { - if((ref_flags == UPB_REF_FROZEN && !s->is_frozen && s - upb_atomic_read((void*)(s + 1)) > 1) || - (ref_flags == UPB_REF_MUTABLE && s->is_frozen && -} - char *upb_string_getrwbuf(upb_string *s, upb_strlen_t byte_len) { + check_not_frozen(s); if(s->byte_size < byte_len) { // Need to resize. s->byte_size = round_up_to_pow2(byte_len); |