Fixed multiple evstring bugs
This commit is contained in:
@@ -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;
|
||||||
|
|
||||||
assert(wrapped_begin >= 0 && wrapped_begin < string_len);
|
// In this case, the assertions don't matter
|
||||||
assert(wrapped_end > 0 && wrapped_end <= string_len);
|
if(wrapped_begin != wrapped_end)
|
||||||
|
{
|
||||||
assert(wrapped_begin < wrapped_end);
|
assert(wrapped_begin >= 0 && wrapped_begin < string_len);
|
||||||
|
assert(wrapped_end > 0 && wrapped_end <= string_len);
|
||||||
|
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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user