Wip fixes for r_strbuf

This commit is contained in:
pancake 2016-02-16 00:28:57 +01:00
parent 72d289ff4d
commit ce7ca97cb6
2 changed files with 4 additions and 12 deletions

View File

@ -432,7 +432,6 @@ R_API RAsmCode* r_asm_mdisassemble(RAsm *a, const ut8 *buf, int len) {
r_strbuf_append (buf_asm, "\n"); r_strbuf_append (buf_asm, "\n");
} }
acode->buf_asm = r_strbuf_drain (buf_asm); acode->buf_asm = r_strbuf_drain (buf_asm);
acode->len = idx; acode->len = idx;
return acode; return acode;
} }

View File

@ -24,7 +24,7 @@ R_API bool r_strbuf_set(RStrBuf *sb, const char *s) {
l = strlen (s); l = strlen (s);
if (l >= sizeof (sb->buf)) { if (l >= sizeof (sb->buf)) {
char *ptr = sb->ptr; char *ptr = sb->ptr;
if (l+1 > sb->ptrlen) { if (!ptr || l+1 > sb->ptrlen) {
ptr = malloc (l + 1); ptr = malloc (l + 1);
if (!ptr) return false; if (!ptr) return false;
sb->ptrlen = l + 1; sb->ptrlen = l + 1;
@ -72,11 +72,10 @@ R_API int r_strbuf_append(RStrBuf *sb, const char *s) {
sb->ptr = NULL; sb->ptr = NULL;
} else { } else {
int newlen = sb->len + l + 128; int newlen = sb->len + l + 128;
char *p; char *p = sb->ptr;
if (!sb->ptr) { if (!sb->ptr) {
p = malloc (newlen); p = malloc (newlen);
} } else if (newlen > sb->ptrlen) {
if (sb->len + l + 1 > sb->ptrlen) {
p = realloc (sb->ptr, newlen); p = realloc (sb->ptr, newlen);
} }
if (!p) return false; if (!p) return false;
@ -111,14 +110,8 @@ R_API int r_strbuf_appendf(RStrBuf *sb, const char *fmt, ...) {
return ret; return ret;
} }
// TODO: rename to tostring()
R_API char *r_strbuf_get(RStrBuf *sb) { R_API char *r_strbuf_get(RStrBuf *sb) {
if (sb) { return sb? (sb->ptr? sb->ptr: sb->buf) : NULL;
if (sb->ptr)
return sb->ptr;
return sb->buf;
}
return NULL;
} }
R_API char *r_strbuf_drain(RStrBuf *sb) { R_API char *r_strbuf_drain(RStrBuf *sb) {