aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--String.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/String.c b/String.c
index c63677b..2553d69 100644
--- a/String.c
+++ b/String.c
@@ -85,12 +85,10 @@ S_append(String s, const char* str) {
struct StringMeta* sm = S_metadata(s);
- usize strlength = strlen(str);
- if (sm->length - strlen(s) < strlength) {
- if (!B_resizeable(sm->b, s))
- return R_Err;
- B_resize(sm->b, sizeof(*sm) + (sm->length += strlength) + 1);
- }
+ if (!B_resizeable(sm->b, s))
+ return R_OutOfBounds;
+
+ RETURN_NOTOK(B_resize(sm->b, sizeof(*sm) + (sm->length += strlen(str)) + 1));
strcat(s, str);
return R_Ok;