Add more assumes needed for static analysis.
This commit is contained in:
1 parent
eaf5a26157
commit
c18cd81dde
1 file changed
+4
-2
+4
-2
@@ -170,10 +170,10 @@ string_clear(string_t v)
|
|||||||
STRINGI_CONTRACT(v);
|
STRINGI_CONTRACT(v);
|
||||||
if (!stringi_stack_p(v)) {
|
if (!stringi_stack_p(v)) {
|
||||||
M_MEMORY_FREE(v->ptr);
|
M_MEMORY_FREE(v->ptr);
|
||||||
|
v->ptr = NULL;
|
||||||
}
|
}
|
||||||
/* This is not needed but is safer to make
|
/* This is not needed but is safer to make
|
||||||
the string invalid so that it can be detected. */
|
the string invalid so that it can be detected. */
|
||||||
v->ptr = NULL;
|
|
||||||
v->u.stack.buffer[sizeof (string_heap_t) - 1] = CHAR_MAX;
|
v->u.stack.buffer[sizeof (string_heap_t) - 1] = CHAR_MAX;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -657,13 +657,15 @@ static inline void
|
|||||||
string_replace_at (string_t v, size_t pos, size_t len, const char str2[])
|
string_replace_at (string_t v, size_t pos, size_t len, const char str2[])
|
||||||
{
|
{
|
||||||
STRINGI_CONTRACT (v);
|
STRINGI_CONTRACT (v);
|
||||||
M_ASSUME (pos+len < string_size(v) && str2 != NULL);
|
assert(str2 != NULL);
|
||||||
const size_t str1_l = len;
|
const size_t str1_l = len;
|
||||||
const size_t str2_l = strlen(str2);
|
const size_t str2_l = strlen(str2);
|
||||||
const size_t size = string_size(v);
|
const size_t size = string_size(v);
|
||||||
char *ptr;
|
char *ptr;
|
||||||
if (str1_l != str2_l) {
|
if (str1_l != str2_l) {
|
||||||
|
M_ASSUME (size + str2_l + 1 > str1_l);
|
||||||
ptr = stringi_fit2size (v, size + str2_l - str1_l + 1);
|
ptr = stringi_fit2size (v, size + str2_l - str1_l + 1);
|
||||||
|
M_ASSUME (pos + str1_l < size + 1);
|
||||||
memmove(&ptr[pos+str2_l], &ptr[pos+str1_l], size - pos - str1_l + 1);
|
memmove(&ptr[pos+str2_l], &ptr[pos+str1_l], size - pos - str1_l + 1);
|
||||||
stringi_set_size(v, size + str2_l - str1_l);
|
stringi_set_size(v, size + str2_l - str1_l);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in new issue
Block a user