regcomp.c: Rmv no longer called function
authorKarl Williamson <public@khwilliamson.com>
Sat, 28 May 2011 18:05:54 +0000 (12:05 -0600)
committerKarl Williamson <public@khwilliamson.com>
Sun, 3 Jul 2011 20:05:45 +0000 (14:05 -0600)
This hasn't been used since 626725768b7b17463e9ec7b92e2da37105036252
Author: Nicholas Clark <nick@ccl4.org>
 Date:   Thu May 26 22:29:40 2011 -0600

regcomp.c: Fix memory leak regression

 here was a remaining memory leak in the new inversion lists data
structure under threading.  This solves it by changing the
implementation to use a SVpPV instead of doing our own memory
management.  Then the already existing code for handling SVs
returns the memory when done.

embed.fnc
embed.h
proto.h
regcomp.c

index 6493b64..e24ad27 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -1313,7 +1313,6 @@ EsM       |void   |invlist_intersection   |NN SV* const a|NN SV* const b|NN SV** i
 EiMR   |UV     |invlist_len    |NN SV* const invlist
 EiMR   |UV     |invlist_max    |NN SV* const invlist
 EiM    |void   |invlist_set_len        |NN SV* const invlist|const UV len
-EiM    |void   |invlist_set_max        |NN SV* const invlist|const UV max
 EiM    |void   |invlist_trim   |NN SV* const invlist
 EsM    |void   |invlist_union  |NN SV* const a|NN SV* const b|NN SV** output
 #endif
diff --git a/embed.h b/embed.h
index 2c636b1..fd2fb1a 100644 (file)
--- a/embed.h
+++ b/embed.h
 #define invlist_len(a)         S_invlist_len(aTHX_ a)
 #define invlist_max(a)         S_invlist_max(aTHX_ a)
 #define invlist_set_len(a,b)   S_invlist_set_len(aTHX_ a,b)
-#define invlist_set_max(a,b)   S_invlist_set_max(aTHX_ a,b)
 #define invlist_trim(a)                S_invlist_trim(aTHX_ a)
 #define invlist_union(a,b,c)   S_invlist_union(aTHX_ a,b,c)
 #define join_exact(a,b,c,d,e,f)        S_join_exact(aTHX_ a,b,c,d,e,f)
diff --git a/proto.h b/proto.h
index 3b10a93..fdfc82b 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -6076,11 +6076,6 @@ PERL_STATIC_INLINE void  S_invlist_set_len(pTHX_ SV* const invlist, const UV len)
 #define PERL_ARGS_ASSERT_INVLIST_SET_LEN       \
        assert(invlist)
 
-PERL_STATIC_INLINE void        S_invlist_set_max(pTHX_ SV* const invlist, const UV max)
-                       __attribute__nonnull__(pTHX_1);
-#define PERL_ARGS_ASSERT_INVLIST_SET_MAX       \
-       assert(invlist)
-
 PERL_STATIC_INLINE void        S_invlist_trim(pTHX_ SV* const invlist)
                        __attribute__nonnull__(pTHX_1);
 #define PERL_ARGS_ASSERT_INVLIST_TRIM  \
index d2d6e55..8c23bd8 100644 (file)
--- a/regcomp.c
+++ b/regcomp.c
@@ -5879,22 +5879,6 @@ S_invlist_set_len(pTHX_ SV* const invlist, const UV len)
     SvCUR_set(invlist, len * sizeof(UV));
 }
 
-PERL_STATIC_INLINE void
-S_invlist_set_max(pTHX_ SV* const invlist, const UV max)
-{
-
-    /* Sets the maximum number of elements storable in the inversion list
-     * without having to realloc() */
-
-    PERL_ARGS_ASSERT_INVLIST_SET_MAX;
-
-    if (max < invlist_len(invlist)) {
-       Perl_croak(aTHX_ "panic: Can't make max size '%"UVuf"' less than current length %"UVuf" in inversion list", invlist_max(invlist), invlist_len(invlist));
-    }
-
-    SvLEN_set(invlist, max * sizeof(UV));
-}
-
 #ifndef PERL_IN_XSUB_RE
 SV*
 Perl__new_invlist(pTHX_ IV initial_size)