bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: const-correctness fixes for regex


From: Paul Eggert
Subject: Re: const-correctness fixes for regex
Date: Wed, 31 Aug 2005 16:38:49 -0700
User-agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux)

Jim Meyering <address@hidden> writes:

> A week or so ago, I stumbled across one interface that was missing a
> `const' attribute on a parameter, then dug up a few more.  Paul, let me
> know when you reach a point at which my checking this in won't interfere.

It's easier for me if I just get it off the plate and install it now.
I installed this into gnulib and filed glibc bug 1282.  Thanks.

I wish missing-const-detection could be done automatically.  I suppose
we could add const to all the pointers, and then remove each const
that causes a diagnostic, but that sounds pretty painful....

2005-08-31  Jim Meyering  <address@hidden>

        * lib/regcomp.c (search_duplicated_node): Make first pointer arg
        a pointer-to-const.
        * lib/regex_internal.c (create_ci_newstate, create_cd_newstate):
        (register_state): Likewise.
        * lib/regexec.c (search_cur_bkref_entry, check_dst_limits):
        (check_dst_limits_calc_pos_1, check_dst_limits_calc_pos):
        (group_nodes_into_DFAstates): Likewise.
        * config/srclist.txt: Add glibc bug 1282.

--- lib/regcomp.c       31 Aug 2005 22:51:10 -0000      1.13
+++ lib/regcomp.c       31 Aug 2005 23:25:36 -0000
@@ -46,7 +46,7 @@ static reg_errcode_t calc_first (void *e
 static reg_errcode_t calc_next (void *extra, bin_tree_t *node);
 static reg_errcode_t link_nfa_nodes (void *extra, bin_tree_t *node);
 static Idx duplicate_node (re_dfa_t *dfa, Idx org_idx, unsigned int 
constraint);
-static Idx search_duplicated_node (re_dfa_t *dfa, Idx org_node,
+static Idx search_duplicated_node (const re_dfa_t *dfa, Idx org_node,
                                   unsigned int constraint);
 static reg_errcode_t calc_eclosure (re_dfa_t *dfa);
 static reg_errcode_t calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa,
@@ -1506,7 +1506,7 @@ duplicate_node_closure (re_dfa_t *dfa, I
    satisfies the constraint CONSTRAINT.  */
 
 static Idx
-search_duplicated_node (re_dfa_t *dfa, Idx org_node,
+search_duplicated_node (const re_dfa_t *dfa, Idx org_node,
                        unsigned int constraint)
 {
   Idx idx;
--- lib/regex_internal.c        31 Aug 2005 22:51:10 -0000      1.10
+++ lib/regex_internal.c        31 Aug 2005 23:25:36 -0000
@@ -21,10 +21,10 @@ static void re_string_construct_common (
                                        re_string_t *pstr,
                                        REG_TRANSLATE_TYPE trans, int icase,
                                        const re_dfa_t *dfa) internal_function;
-static re_dfastate_t *create_ci_newstate (re_dfa_t *dfa,
+static re_dfastate_t *create_ci_newstate (const re_dfa_t *dfa,
                                          const re_node_set *nodes,
                                          re_hashval_t hash) internal_function;
-static re_dfastate_t *create_cd_newstate (re_dfa_t *dfa,
+static re_dfastate_t *create_cd_newstate (const re_dfa_t *dfa,
                                          const re_node_set *nodes,
                                          unsigned int context,
                                          re_hashval_t hash) internal_function;
@@ -1465,7 +1465,7 @@ re_acquire_state_context (reg_errcode_t 
 
 static reg_errcode_t
 internal_function
-register_state (re_dfa_t *dfa, re_dfastate_t *newstate, re_hashval_t hash)
+register_state (const re_dfa_t *dfa, re_dfastate_t *newstate, re_hashval_t 
hash)
 {
   struct re_state_table_entry *spot;
   reg_errcode_t err;
@@ -1502,7 +1502,8 @@ register_state (re_dfa_t *dfa, re_dfasta
 
 static re_dfastate_t *
 internal_function
-create_ci_newstate (re_dfa_t *dfa, const re_node_set *nodes, re_hashval_t hash)
+create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes,
+                   re_hashval_t hash)
 {
   Idx i;
   reg_errcode_t err;
@@ -1551,7 +1552,7 @@ create_ci_newstate (re_dfa_t *dfa, const
 
 static re_dfastate_t *
 internal_function
-create_cd_newstate (re_dfa_t *dfa, const re_node_set *nodes,
+create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes,
                    unsigned int context, re_hashval_t hash)
 {
   Idx i, nctx_nodes = 0;
--- lib/regexec.c       31 Aug 2005 22:51:10 -0000      1.13
+++ lib/regexec.c       31 Aug 2005 23:25:36 -0000
@@ -24,7 +24,7 @@ static void match_ctx_free (re_match_con
 static reg_errcode_t match_ctx_add_entry (re_match_context_t *cache, Idx node,
                                          Idx str_idx, Idx from, Idx to)
      internal_function;
-static Idx search_cur_bkref_entry (re_match_context_t *mctx, Idx str_idx)
+static Idx search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx)
      internal_function;
 static reg_errcode_t match_ctx_add_subtop (re_match_context_t *mctx, Idx node,
                                           Idx str_idx) internal_function;
@@ -91,13 +91,14 @@ static reg_errcode_t update_cur_sifted_s
 static reg_errcode_t add_epsilon_src_nodes (re_dfa_t *dfa,
                                            re_node_set *dest_nodes,
                                            const re_node_set *candidates) 
internal_function;
-static int check_dst_limits (re_match_context_t *mctx, re_node_set *limits,
+static int check_dst_limits (const re_match_context_t *mctx,
+                            const re_node_set *limits,
                             Idx dst_node, Idx dst_idx, Idx src_node,
                             Idx src_idx) internal_function;
-static int check_dst_limits_calc_pos_1 (re_match_context_t *mctx,
+static int check_dst_limits_calc_pos_1 (const re_match_context_t *mctx,
                                        int boundaries, Idx subexp_idx,
                                        Idx from_node, Idx bkref_idx) 
internal_function;
-static int check_dst_limits_calc_pos (re_match_context_t *mctx,
+static int check_dst_limits_calc_pos (const re_match_context_t *mctx,
                                      Idx limit, Idx subexp_idx,
                                      Idx node, Idx str_idx,
                                      Idx bkref_idx) internal_function;
@@ -170,7 +171,7 @@ static unsigned int find_collation_seque
                                                   size_t name_len) 
internal_function;
 # endif /* _LIBC */
 #endif /* RE_ENABLE_I18N */
-static Idx group_nodes_into_DFAstates (re_dfa_t *dfa,
+static Idx group_nodes_into_DFAstates (const re_dfa_t *dfa,
                                       const re_dfastate_t *state,
                                       re_node_set *states_node,
                                       bitset *states_ch) internal_function;
@@ -1855,7 +1856,7 @@ sub_epsilon_src_nodes (re_dfa_t *dfa, Id
 
 static int
 internal_function
-check_dst_limits (re_match_context_t *mctx, re_node_set *limits,
+check_dst_limits (const re_match_context_t *mctx, const re_node_set *limits,
                  Idx dst_node, Idx dst_idx, Idx src_node, Idx src_idx)
 {
   re_dfa_t *const dfa = mctx->dfa;
@@ -1891,7 +1892,7 @@ check_dst_limits (re_match_context_t *mc
 
 static int
 internal_function
-check_dst_limits_calc_pos_1 (re_match_context_t *mctx, int boundaries,
+check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries,
                             Idx subexp_idx, Idx from_node, Idx bkref_idx)
 {
   re_dfa_t *const dfa = mctx->dfa;
@@ -1973,7 +1974,8 @@ check_dst_limits_calc_pos_1 (re_match_co
 
 static int
 internal_function
-check_dst_limits_calc_pos (re_match_context_t *mctx, Idx limit, Idx subexp_idx,
+check_dst_limits_calc_pos (const re_match_context_t *mctx,
+                          Idx limit, Idx subexp_idx,
                           Idx from_node, Idx str_idx, Idx bkref_idx)
 {
   struct re_backref_cache_entry *lim = mctx->bkref_ents + limit;
@@ -3484,7 +3486,7 @@ out_free:
 
 static Idx
 internal_function
-group_nodes_into_DFAstates (re_dfa_t *dfa, const re_dfastate_t *state,
+group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state,
                            re_node_set *dests_node, bitset *dests_ch)
 {
   reg_errcode_t err;
@@ -4203,7 +4205,7 @@ match_ctx_add_entry (re_match_context_t 
 
 static Idx
 internal_function
-search_cur_bkref_entry (re_match_context_t *mctx, Idx str_idx)
+search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx)
 {
   Idx left, right, mid, last;
   last = right = mctx->nbkref_ents;
--- config/srclist.txt  31 Aug 2005 22:51:09 -0000      1.93
+++ config/srclist.txt  31 Aug 2005 23:35:21 -0000
@@ -106,6 +106,7 @@ $LIBCSRC/stdlib/getsubopt.c         lib gpl
 # http://sources.redhat.com/bugzilla/show_bug.cgi?id=1278
 # http://sources.redhat.com/bugzilla/show_bug.cgi?id=1280
 # http://sources.redhat.com/bugzilla/show_bug.cgi?id=1281
+# http://sources.redhat.com/bugzilla/show_bug.cgi?id=1282
 #$LIBCSRC/posix/regcomp.c              lib gpl
 #
 # http://sources.redhat.com/bugzilla/show_bug.cgi?id=1238
@@ -130,6 +131,7 @@ $LIBCSRC/stdlib/getsubopt.c         lib gpl
 # http://sources.redhat.com/bugzilla/show_bug.cgi?id=1241
 # http://sources.redhat.com/bugzilla/show_bug.cgi?id=1248
 # http://sources.redhat.com/bugzilla/show_bug.cgi?id=1281
+# http://sources.redhat.com/bugzilla/show_bug.cgi?id=1282
 #$LIBCSRC/posix/regex_internal.c               lib gpl
 #
 # http://sources.redhat.com/bugzilla/show_bug.cgi?id=1054
@@ -155,6 +157,7 @@ $LIBCSRC/stdlib/getsubopt.c         lib gpl
 # http://sources.redhat.com/bugzilla/show_bug.cgi?id=1279
 # http://sources.redhat.com/bugzilla/show_bug.cgi?id=1280
 # http://sources.redhat.com/bugzilla/show_bug.cgi?id=1281
+# http://sources.redhat.com/bugzilla/show_bug.cgi?id=1282
 #$LIBCSRC/posix/regexec.c              lib gpl
 #
 # c89 changes $LIBCSRC/string/strdup.c         lib gpl




reply via email to

[Prev in Thread] Current Thread [Next in Thread]