Fix functions for name tables as st_foreach_callback_func

This commit is contained in:
Nobuyoshi Nakada 2023-11-02 12:53:06 +09:00
parent e34e8b93f8
commit 4218e913d8
No known key found for this signature in database
GPG Key ID: 3582D74E1FEE4465

View File

@ -476,8 +476,11 @@ typedef st_data_t HashDataType; /* 1.6 st.h doesn't define st_data_t type */
# ifdef ONIG_DEBUG # ifdef ONIG_DEBUG
static int static int
i_print_name_entry(UChar* key, NameEntry* e, void* arg) i_print_name_entry(HashDataType key_, HashDataType e_, HashDataType arg_)
{ {
UChar* key = (UChar *)key_;
NameEntry* e = (NameEntry *)e_;
void* arg = (void *)arg_;
int i; int i;
FILE* fp = (FILE* )arg; FILE* fp = (FILE* )arg;
@ -503,7 +506,7 @@ onig_print_names(FILE* fp, regex_t* reg)
if (IS_NOT_NULL(t)) { if (IS_NOT_NULL(t)) {
fprintf(fp, "name table\n"); fprintf(fp, "name table\n");
onig_st_foreach(t, (st_foreach_callback_func *)i_print_name_entry, (HashDataType )fp); onig_st_foreach(t, i_print_name_entry, (HashDataType )fp);
fputs("\n", fp); fputs("\n", fp);
} }
return 0; return 0;
@ -511,8 +514,10 @@ onig_print_names(FILE* fp, regex_t* reg)
# endif /* ONIG_DEBUG */ # endif /* ONIG_DEBUG */
static int static int
i_free_name_entry(UChar* key, NameEntry* e, void* arg ARG_UNUSED) i_free_name_entry(HashDataType key_, HashDataType e_, HashDataType arg_ ARG_UNUSED)
{ {
UChar* key = (UChar *)key_;
NameEntry* e = (NameEntry *)e_;
xfree(e->name); xfree(e->name);
xfree(e->back_refs); xfree(e->back_refs);
xfree(key); xfree(key);
@ -526,7 +531,7 @@ names_clear(regex_t* reg)
NameTable* t = (NameTable* )reg->name_table; NameTable* t = (NameTable* )reg->name_table;
if (IS_NOT_NULL(t)) { if (IS_NOT_NULL(t)) {
onig_st_foreach(t, (st_foreach_callback_func *)i_free_name_entry, 0); onig_st_foreach(t, i_free_name_entry, 0);
} }
return 0; return 0;
} }
@ -568,8 +573,10 @@ typedef struct {
} INamesArg; } INamesArg;
static int static int
i_names(UChar* key ARG_UNUSED, NameEntry* e, INamesArg* arg) i_names(HashDataType key_ ARG_UNUSED, HashDataType e_, HashDataType arg_)
{ {
NameEntry* e = (NameEntry *)e_;
INamesArg* arg = (INamesArg *)arg_;
int r = (*(arg->func))(e->name, int r = (*(arg->func))(e->name,
e->name + e->name_len, e->name + e->name_len,
e->back_num, e->back_num,
@ -595,14 +602,16 @@ onig_foreach_name(regex_t* reg,
narg.reg = reg; narg.reg = reg;
narg.arg = arg; narg.arg = arg;
narg.enc = reg->enc; /* should be pattern encoding. */ narg.enc = reg->enc; /* should be pattern encoding. */
onig_st_foreach(t, (st_foreach_callback_func *)i_names, (HashDataType )&narg); onig_st_foreach(t, i_names, (HashDataType )&narg);
} }
return narg.ret; return narg.ret;
} }
static int static int
i_renumber_name(UChar* key ARG_UNUSED, NameEntry* e, GroupNumRemap* map) i_renumber_name(HashDataType key_ ARG_UNUSED, HashDataType e_, HashDataType map_)
{ {
NameEntry* e = (NameEntry *)e_;
GroupNumRemap* map = (GroupNumRemap *)map_;
int i; int i;
if (e->back_num > 1) { if (e->back_num > 1) {
@ -623,7 +632,7 @@ onig_renumber_name_table(regex_t* reg, GroupNumRemap* map)
NameTable* t = (NameTable* )reg->name_table; NameTable* t = (NameTable* )reg->name_table;
if (IS_NOT_NULL(t)) { if (IS_NOT_NULL(t)) {
onig_st_foreach(t, (st_foreach_callback_func *)i_renumber_name, (HashDataType )map); onig_st_foreach(t, i_renumber_name, (HashDataType )map);
} }
return 0; return 0;
} }