Fixed multiple evstring bugs

This commit is contained in:
2026-04-21 13:57:58 +02:00
parent b845e72902
commit b5b2df24aa
+7 -2
View File
@@ -402,6 +402,7 @@ evstring_setLength(
meta = META(*s); meta = META(*s);
} }
meta->length = newlen; meta->length = newlen;
(*s)[newlen] = 0;
return EV_STR_ERR_NONE; return EV_STR_ERR_NONE;
} }
@@ -498,10 +499,13 @@ evstring_slice(
u64 wrapped_begin = begin < 0 ? string_len + 1 + begin : begin; u64 wrapped_begin = begin < 0 ? string_len + 1 + begin : begin;
u64 wrapped_end = end < 0 ? string_len + 1 + end : end; u64 wrapped_end = end < 0 ? string_len + 1 + end : end;
// In this case, the assertions don't matter
if(wrapped_begin != wrapped_end)
{
assert(wrapped_begin >= 0 && wrapped_begin < string_len); assert(wrapped_begin >= 0 && wrapped_begin < string_len);
assert(wrapped_end > 0 && wrapped_end <= string_len); assert(wrapped_end > 0 && wrapped_end <= string_len);
assert(wrapped_begin < wrapped_end); assert(wrapped_begin < wrapped_end);
}
return (evstring_view) { return (evstring_view) {
.data = s, .data = s,
@@ -688,8 +692,9 @@ evstring_findAll(
evstring_slice(text, v.offset + v.len, -1), evstring_slice(text, v.offset + v.len, -1),
evstring_slice(query, 0, -1))) { evstring_slice(query, 0, -1))) {
if(!check_run) { if(!check_run) {
results[count++] = v; results[count] = v;
} }
count++;
} }
return count; return count;
} }