diff --git a/vlib/builtin/string.v b/vlib/builtin/string.v index 0afcc4c774..eeff3a2591 100644 --- a/vlib/builtin/string.v +++ b/vlib/builtin/string.v @@ -712,11 +712,15 @@ pub fn (s string) index(p string) ?int { } // index_kmp does KMP search. +[manualfree] fn (s string) index_kmp(p string) int { if p.len > s.len { return -1 } mut prefix := []int{len: p.len} + defer { + unsafe { prefix.free() } + } mut j := 0 for i := 1; i < p.len; i++ { for unsafe { p.str[j] != p.str[i] } && j > 0 {