Skip to content

Commit

Permalink
fix #312: Build failure with GCC 15 (C23)
Browse files Browse the repository at this point in the history
  • Loading branch information
kkos committed Nov 17, 2024
1 parent f6723fd commit 5f1408d
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 16 deletions.
44 changes: 36 additions & 8 deletions src/regparse.c
Original file line number Diff line number Diff line change
Expand Up @@ -793,8 +793,13 @@ onig_print_names(FILE* fp, regex_t* reg)
#endif /* ONIG_DEBUG */

static int
i_free_name_entry(UChar* key, NameEntry* e, void* arg ARG_UNUSED)
i_free_name_entry(st_data_t akey, st_data_t ae, st_data_t arg ARG_UNUSED)
{
UChar* key;
NameEntry* e;

key = (UChar* )akey;
e = (NameEntry* )ae;
xfree(e->name);
if (IS_NOT_NULL(e->back_refs)) xfree(e->back_refs);
xfree(key);
Expand Down Expand Up @@ -850,8 +855,14 @@ typedef struct {
} INamesArg;

static int
i_names(UChar* key ARG_UNUSED, NameEntry* e, INamesArg* arg)
i_names(st_data_t key ARG_UNUSED, st_data_t ae, st_data_t aarg)
{
NameEntry* e;
INamesArg* arg;

e = (NameEntry* )ae;
arg = (INamesArg* )aarg;

int r = (*(arg->func))(e->name,
e->name + e->name_len,
e->back_num,
Expand Down Expand Up @@ -883,9 +894,14 @@ onig_foreach_name(regex_t* reg,
}

static int
i_renumber_name(UChar* key ARG_UNUSED, NameEntry* e, GroupNumMap* map)
i_renumber_name(st_data_t key ARG_UNUSED, st_data_t ae, st_data_t amap)
{
int i;
NameEntry* e;
GroupNumMap* map;

e = (NameEntry* )ae;
map = (GroupNumMap* )amap;

if (e->back_num > 1) {
for (i = 0; i < e->back_num; i++) {
Expand Down Expand Up @@ -1374,9 +1390,14 @@ static int CalloutNameIDCounter;
#ifdef USE_ST_LIBRARY

static int
i_free_callout_name_entry(st_callout_name_key* key, CalloutNameEntry* e,
void* arg ARG_UNUSED)
i_free_callout_name_entry(st_data_t akey, st_data_t ae, st_data_t arg ARG_UNUSED)
{
st_callout_name_key* key;
CalloutNameEntry* e;

key = (st_callout_name_key* )akey;
e = (CalloutNameEntry* )ae;

if (IS_NOT_NULL(e)) {
xfree(e->name);
}
Expand Down Expand Up @@ -1870,10 +1891,14 @@ typedef intptr_t CalloutTagVal;
#define CALLOUT_TAG_LIST_FLAG_TAG_EXIST (1<<0)

static int
i_callout_callout_list_set(UChar* key, CalloutTagVal e, void* arg)
i_callout_callout_list_set(st_data_t key ARG_UNUSED, st_data_t ae, st_data_t arg)
{
int num;
RegexExt* ext = (RegexExt* )arg;
CalloutTagVal e;
RegexExt* ext;

e = (CalloutTagVal )ae;
ext = (RegexExt* )arg;

num = (int )e - 1;
ext->callout_list[num].flag |= CALLOUT_TAG_LIST_FLAG_TAG_EXIST;
Expand Down Expand Up @@ -1926,8 +1951,11 @@ onig_callout_tag_is_exist_at_callout_num(regex_t* reg, int callout_num)
}

static int
i_free_callout_tag_entry(UChar* key, CalloutTagVal e, void* arg ARG_UNUSED)
i_free_callout_tag_entry(st_data_t akey, st_data_t e ARG_UNUSED, st_data_t arg ARG_UNUSED)
{
UChar* key;

key = (UChar* )akey;
xfree(key);
return ST_DELETE;
}
Expand Down
9 changes: 1 addition & 8 deletions src/st.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,6 @@ enum st_retval {ST_CONTINUE, ST_STOP, ST_DELETE, ST_CHECK};
#ifndef _
# define _(args) args
#endif
#ifndef ANYARGS
# ifdef __cplusplus
# define ANYARGS ...
# else
# define ANYARGS
# endif
#endif

st_table *st_init_table _((struct st_hash_type *));
st_table *st_init_table_with_size _((struct st_hash_type *, int));
Expand All @@ -52,7 +45,7 @@ int st_delete _((st_table *, st_data_t *, st_data_t *));
int st_delete_safe _((st_table *, st_data_t *, st_data_t *, st_data_t));
int st_insert _((st_table *, st_data_t, st_data_t));
int st_lookup _((st_table *, st_data_t, st_data_t *));
int st_foreach _((st_table *, int (*)(ANYARGS), st_data_t));
int st_foreach _((st_table *, int (*)(st_data_t, st_data_t, st_data_t), st_data_t));
void st_add_direct _((st_table *, st_data_t, st_data_t));
void st_free_table _((st_table *));
void st_cleanup_safe _((st_table *, st_data_t));
Expand Down

0 comments on commit 5f1408d

Please sign in to comment.