diff options
author | Joshua Haberman <joshua@reverberate.org> | 2009-08-12 13:47:24 -0700 |
---|---|---|
committer | Joshua Haberman <joshua@reverberate.org> | 2009-08-12 13:47:24 -0700 |
commit | 2282d2489bd8db3cd4ddbe0dd813732bffcf6452 (patch) | |
tree | 814fc94cd8ca4993363fb0ebe45b14e320a7a792 /src/upb_string.c | |
parent | 89a6c6d71f87bab63ee17c60f0feb56215f5c116 (diff) |
Refactoring: unify upb_msg.
The cost is that a upb_msg will now always have an overhead
of 2*sizeof(void*). This is comparable to proto2 overhead.
The benefit is that upb_msg is now self-describing, and
read-only algorithms can now operate on a upb_msg regardless
of the memory-management scheme.
Also, upb_array and upb_string now know inherently if they
own their associated memory, and upb_array has a generic
pointer for memory management purposes like upb_msg does.
Diffstat (limited to 'src/upb_string.c')
-rw-r--r-- | src/upb_string.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/upb_string.c b/src/upb_string.c index bb40a62..7754936 100644 --- a/src/upb_string.c +++ b/src/upb_string.c @@ -14,8 +14,8 @@ bool upb_strreadfile(const char *filename, struct upb_string *data) { long size = ftell(f); if(size < 0) return false; if(fseek(f, 0, SEEK_SET) != 0) return false; - data->ptr = (char*)malloc(size); data->byte_len = size; + upb_stralloc(data, data->byte_len); if(fread(data->ptr, size, 1, f) != 1) { free(data->ptr); return false; |