Disposal of RegexMatch structures

This commit is contained in:
VegOwOtenks 2024-06-13 16:51:46 +02:00
parent e6064bd375
commit 0b651b819a
3 changed files with 12 additions and 0 deletions

View file

@ -43,3 +43,9 @@ RegexCapture* RegexMatch_GetNumberedCapture(RegexMatch* match, size_t number)
return DynamicArray_GetPointer(&match->captures, capture_index); return DynamicArray_GetPointer(&match->captures, capture_index);
} }
void RegexMatch_Destroy(RegexMatch* match)
{
DynamicArray_Destroy(&match->captures);
match->match = STRINGVIEW_NONE;
}

View file

@ -26,4 +26,6 @@ typedef struct RegexMatch_s {
bool RegexMatch_HaveNumberedCapture(RegexMatch* match, size_t number); bool RegexMatch_HaveNumberedCapture(RegexMatch* match, size_t number);
RegexCapture* RegexMatch_GetNumberedCapture(RegexMatch* match, size_t number); RegexCapture* RegexMatch_GetNumberedCapture(RegexMatch* match, size_t number);
void RegexMatch_Destroy(RegexMatch* match);
#endif #endif

View file

@ -31,6 +31,8 @@ void testLiteral(void)
assert(Regex_FirstMatch(&regex, test_string_0, &match) == EXIT_SUCCESS); assert(Regex_FirstMatch(&regex, test_string_0, &match) == EXIT_SUCCESS);
assert(StringView_Equal(match.match, test_string_0)); assert(StringView_Equal(match.match, test_string_0));
RegexMatch_Destroy(&match);
Regex_Destroy(&regex); Regex_Destroy(&regex);
assert(allocator.reserved == 0); assert(allocator.reserved == 0);
Allocator_DestroySystemAllocator(&allocator); Allocator_DestroySystemAllocator(&allocator);
@ -52,6 +54,8 @@ void testBackslash(void)
assert(Regex_FirstMatch(&regex, match_string, &match) == EXIT_SUCCESS); assert(Regex_FirstMatch(&regex, match_string, &match) == EXIT_SUCCESS);
assert(StringView_Equal(match.match, match_string)); assert(StringView_Equal(match.match, match_string));
RegexMatch_Destroy(&match);
Regex_Destroy(&regex); Regex_Destroy(&regex);
assert(allocator.reserved == 0); assert(allocator.reserved == 0);
Allocator_DestroySystemAllocator(&allocator); Allocator_DestroySystemAllocator(&allocator);