object: string: fix b_string_steal resetting capacity to wrong value
This commit is contained in:
@@ -48,7 +48,7 @@ static char *string_ptr(struct b_string *str)
|
|||||||
return str->s_data.d_inline;
|
return str->s_data.d_inline;
|
||||||
}
|
}
|
||||||
|
|
||||||
return str->s_data.d_BLUE_APIal;
|
return str->s_data.d_external;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int string_make_inline(struct b_string *str)
|
static int string_make_inline(struct b_string *str)
|
||||||
@@ -76,7 +76,7 @@ static int string_resize_large(struct b_string *str, size_t capacity)
|
|||||||
}
|
}
|
||||||
|
|
||||||
str->s_max = capacity;
|
str->s_max = capacity;
|
||||||
str->s_data.d_BLUE_APIal = new_buffer;
|
str->s_data.d_external = new_buffer;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,7 +92,7 @@ static int string_make_large(struct b_string *str, size_t capacity)
|
|||||||
buffer[str->s_len] = '\0';
|
buffer[str->s_len] = '\0';
|
||||||
|
|
||||||
str->s_max = capacity;
|
str->s_max = capacity;
|
||||||
str->s_data.d_BLUE_APIal = buffer;
|
str->s_data.d_external = buffer;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -178,8 +178,8 @@ char *b_string_steal(struct b_string *str)
|
|||||||
dest = b_strdup(src);
|
dest = b_strdup(src);
|
||||||
} else {
|
} else {
|
||||||
dest = src;
|
dest = src;
|
||||||
str->s_data.d_BLUE_APIal = NULL;
|
str->s_data.d_external = NULL;
|
||||||
str->s_max = 0;
|
str->s_max = STRING_INLINE_CAPACITY;
|
||||||
}
|
}
|
||||||
|
|
||||||
str->s_len = 0;
|
str->s_len = 0;
|
||||||
@@ -318,7 +318,7 @@ const char *b_string_ptr(const struct b_string *str)
|
|||||||
return str->s_data.d_inline;
|
return str->s_data.d_inline;
|
||||||
}
|
}
|
||||||
|
|
||||||
return str->s_data.d_BLUE_APIal;
|
return str->s_data.d_external;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void string_release(struct b_object *obj)
|
static void string_release(struct b_object *obj)
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ struct b_string {
|
|||||||
unsigned int s_max;
|
unsigned int s_max;
|
||||||
union {
|
union {
|
||||||
char d_inline[STRING_INLINE_CAPACITY + 1];
|
char d_inline[STRING_INLINE_CAPACITY + 1];
|
||||||
char *d_BLUE_APIal;
|
char *d_external;
|
||||||
} s_data;
|
} s_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user