From 72245a4c820017cf9a0537b5b6d2a2113682e8d4 Mon Sep 17 00:00:00 2001 From: simonmar Date: Wed, 27 Oct 1999 08:54:16 +0000 Subject: [PATCH] [project @ 1999-10-27 08:54:16 by simonmar] Fix crashes in re_search. Several other functions in this file need fixing too. --- ghc/lib/misc/Regex.lhs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ghc/lib/misc/Regex.lhs b/ghc/lib/misc/Regex.lhs index f087d10..c418bc2 100644 --- a/ghc/lib/misc/Regex.lhs +++ b/ghc/lib/misc/Regex.lhs @@ -233,7 +233,8 @@ re_search pbuf str start range reg _casm_ ``%r = (struct re_registers *)malloc(sizeof(struct re_registers *));'' else _casm_ ``%r = (struct re_registers *)NULL;'') >>= \ regs -> - _casm_ ``%r=(int)re_search((struct re_pattern_buffer *)%0, + _casm_ ``((struct re_pattern_buffer *)%0)->regs_allocated = REGS_UNALLOCATED; + %r=(int)re_search((struct re_pattern_buffer *)%0, (char *)%1, (int)%2, (int)%3, @@ -255,7 +256,9 @@ re_search pbuf str start range reg (range,start) in build_re_match st en regs >>= \ arr -> - _casm_ ``free((struct re_registers *)%0); '' regs >> + _casm_ ``free(((struct re_registers *)%0)->start); + free(((struct re_registers *)%0)->end); + free((struct re_registers *)%0); '' regs >> return (Just arr) \end{code} -- 1.7.10.4