From 935cdb76e8cd11370b536a18264cf0b9081d9cbd Mon Sep 17 00:00:00 2001 From: Karl Williamson Date: Sat, 18 Oct 2025 12:33:07 -0600 Subject: [PATCH] embed.fnc: mv definition of more_sv This was in a #ifdef of being in sv.c, which it is, but since it is public, it needs to be moved out of this. This removes the need for a copy of its prototype to be in sv_inline.h --- embed.fnc | 2 +- embed.h | 100 +++++++++++++++++++++++++--------------------------- proto.h | 8 ++--- sv_inline.h | 4 --- 4 files changed, 54 insertions(+), 60 deletions(-) diff --git a/embed.fnc b/embed.fnc index dfdd9343ac..55cc377346 100644 --- a/embed.fnc +++ b/embed.fnc @@ -2150,6 +2150,7 @@ p |int |mode_from_discipline \ : Used in sv.c and hv.c Cop |void * |more_bodies |const svtype sv_type +Cp |SV * |more_sv Cp |const char *|moreswitches \ |NN const char *s Adp |void |mortal_destructor_sv \ @@ -6036,7 +6037,6 @@ S |void |glob_assign_glob \ |NN SV * const ssv \ |const int dtype S |bool |glob_2number |NN GV * const gv -Cp |SV * |more_sv S |void |not_a_number |NN SV * const sv S |void |not_incrementable \ |NN SV * const sv diff --git a/embed.h b/embed.h index 6decbe53a8..5bda0aada7 100644 --- a/embed.h +++ b/embed.h @@ -375,6 +375,7 @@ # define mg_set(a) Perl_mg_set(aTHX_ a) # define mg_size(a) Perl_mg_size(aTHX_ a) # define mini_mktime Perl_mini_mktime +# define more_sv() Perl_more_sv(aTHX) # define moreswitches(a) Perl_moreswitches(aTHX_ a) # define mortal_destructor_sv(a,b) Perl_mortal_destructor_sv(aTHX_ a,b) # define mortal_getenv Perl_mortal_getenv @@ -1667,6 +1668,54 @@ # define save_pushptri32ptr(a,b,c,d) S_save_pushptri32ptr(aTHX_ a,b,c,d) # define save_scalar_at(a,b) S_save_scalar_at(aTHX_ a,b) # endif +# if defined(PERL_IN_SV_C) +# define F0convert S_F0convert +# define anonymise_cv_maybe(a,b) S_anonymise_cv_maybe(aTHX_ a,b) +# define assert_uft8_cache_coherent(a,b,c,d) S_assert_uft8_cache_coherent(aTHX_ a,b,c,d) +# define croak_sv_setsv_flags(a,b) S_croak_sv_setsv_flags(aTHX_ a,b) +# define curse(a,b) S_curse(aTHX_ a,b) +# define expect_number(a) S_expect_number(aTHX_ a) +# define find_array_subscript(a,b) S_find_array_subscript(aTHX_ a,b) +# define find_hash_subscript(a,b) S_find_hash_subscript(aTHX_ a,b) +# define find_uninit_var(a,b,c,d) S_find_uninit_var(aTHX_ a,b,c,d) +# define glob_2number(a) S_glob_2number(aTHX_ a) +# define glob_assign_glob(a,b,c) S_glob_assign_glob(aTHX_ a,b,c) +# define not_a_number(a) S_not_a_number(aTHX_ a) +# define not_incrementable(a) S_not_incrementable(aTHX_ a) +# define ptr_table_find S_ptr_table_find +# define sv_2iuv_common(a) S_sv_2iuv_common(aTHX_ a) +# define sv_add_arena(a,b,c) S_sv_add_arena(aTHX_ a,b,c) +# define sv_display(a,b,c) S_sv_display(aTHX_ a,b,c) +# define sv_pos_b2u_midway(a,b,c,d) S_sv_pos_b2u_midway(aTHX_ a,b,c,d) +# define sv_pos_u2b_cached(a,b,c,d,e,f,g) S_sv_pos_u2b_cached(aTHX_ a,b,c,d,e,f,g) +# define sv_pos_u2b_forwards S_sv_pos_u2b_forwards +# define sv_pos_u2b_midway S_sv_pos_u2b_midway +# define sv_unglob(a,b) S_sv_unglob(aTHX_ a,b) +# define utf8_mg_len_cache_update(a,b,c) S_utf8_mg_len_cache_update(aTHX_ a,b,c) +# define utf8_mg_pos_cache_update(a,b,c,d,e) S_utf8_mg_pos_cache_update(aTHX_ a,b,c,d,e) +# define visit(a,b,c) S_visit(aTHX_ a,b,c) +# if defined(DEBUGGING) +# define del_sv(a) S_del_sv(aTHX_ a) +# define sv_mark_arenas() Perl_sv_mark_arenas(aTHX) +# define sv_sweep_arenas() Perl_sv_sweep_arenas(aTHX) +# endif +# if !defined(NV_PRESERVES_UV) +# if defined(DEBUGGING) +# define sv_2iuv_non_preserve(a,b) S_sv_2iuv_non_preserve(aTHX_ a,b) +# else +# define sv_2iuv_non_preserve(a) S_sv_2iuv_non_preserve(aTHX_ a) +# endif +# endif +# if defined(PERL_DEBUG_READONLY_COW) +# define sv_buf_to_rw(a) S_sv_buf_to_rw(aTHX_ a) +# endif +# if defined(USE_ITHREADS) +# define sv_dup_common(a,b) S_sv_dup_common(aTHX_ a,b) +# define sv_dup_hvaux(a,b,c) S_sv_dup_hvaux(aTHX_ a,b,c) +# define sv_dup_inc_multiple(a,b,c,d) S_sv_dup_inc_multiple(aTHX_ a,b,c,d) +# define unreferenced_to_tmp_stack(a) S_unreferenced_to_tmp_stack(aTHX_ a) +# endif +# endif /* defined(PERL_IN_SV_C) */ # if defined(PERL_IN_TOKE_C) # define ao(a) S_ao(aTHX_ a) # define check_unary() S_check_unary(aTHX) @@ -2119,57 +2168,6 @@ # define get_regclass_aux_data(a,b,c,d,e,f) Perl_get_regclass_aux_data(aTHX_ a,b,c,d,e,f) # endif # endif /* defined(PERL_IN_REGEX_ENGINE) */ -# if defined(PERL_IN_SV_C) -# define more_sv() Perl_more_sv(aTHX) -# if defined(PERL_CORE) -# define F0convert S_F0convert -# define anonymise_cv_maybe(a,b) S_anonymise_cv_maybe(aTHX_ a,b) -# define assert_uft8_cache_coherent(a,b,c,d) S_assert_uft8_cache_coherent(aTHX_ a,b,c,d) -# define croak_sv_setsv_flags(a,b) S_croak_sv_setsv_flags(aTHX_ a,b) -# define curse(a,b) S_curse(aTHX_ a,b) -# define expect_number(a) S_expect_number(aTHX_ a) -# define find_array_subscript(a,b) S_find_array_subscript(aTHX_ a,b) -# define find_hash_subscript(a,b) S_find_hash_subscript(aTHX_ a,b) -# define find_uninit_var(a,b,c,d) S_find_uninit_var(aTHX_ a,b,c,d) -# define glob_2number(a) S_glob_2number(aTHX_ a) -# define glob_assign_glob(a,b,c) S_glob_assign_glob(aTHX_ a,b,c) -# define not_a_number(a) S_not_a_number(aTHX_ a) -# define not_incrementable(a) S_not_incrementable(aTHX_ a) -# define ptr_table_find S_ptr_table_find -# define sv_2iuv_common(a) S_sv_2iuv_common(aTHX_ a) -# define sv_add_arena(a,b,c) S_sv_add_arena(aTHX_ a,b,c) -# define sv_display(a,b,c) S_sv_display(aTHX_ a,b,c) -# define sv_pos_b2u_midway(a,b,c,d) S_sv_pos_b2u_midway(aTHX_ a,b,c,d) -# define sv_pos_u2b_cached(a,b,c,d,e,f,g) S_sv_pos_u2b_cached(aTHX_ a,b,c,d,e,f,g) -# define sv_pos_u2b_forwards S_sv_pos_u2b_forwards -# define sv_pos_u2b_midway S_sv_pos_u2b_midway -# define sv_unglob(a,b) S_sv_unglob(aTHX_ a,b) -# define utf8_mg_len_cache_update(a,b,c) S_utf8_mg_len_cache_update(aTHX_ a,b,c) -# define utf8_mg_pos_cache_update(a,b,c,d,e) S_utf8_mg_pos_cache_update(aTHX_ a,b,c,d,e) -# define visit(a,b,c) S_visit(aTHX_ a,b,c) -# if defined(DEBUGGING) -# define del_sv(a) S_del_sv(aTHX_ a) -# define sv_mark_arenas() Perl_sv_mark_arenas(aTHX) -# define sv_sweep_arenas() Perl_sv_sweep_arenas(aTHX) -# endif -# if !defined(NV_PRESERVES_UV) -# if defined(DEBUGGING) -# define sv_2iuv_non_preserve(a,b) S_sv_2iuv_non_preserve(aTHX_ a,b) -# else -# define sv_2iuv_non_preserve(a) S_sv_2iuv_non_preserve(aTHX_ a) -# endif -# endif -# if defined(PERL_DEBUG_READONLY_COW) -# define sv_buf_to_rw(a) S_sv_buf_to_rw(aTHX_ a) -# endif -# if defined(USE_ITHREADS) -# define sv_dup_common(a,b) S_sv_dup_common(aTHX_ a,b) -# define sv_dup_hvaux(a,b,c) S_sv_dup_hvaux(aTHX_ a,b,c) -# define sv_dup_inc_multiple(a,b,c,d) S_sv_dup_inc_multiple(aTHX_ a,b,c,d) -# define unreferenced_to_tmp_stack(a) S_unreferenced_to_tmp_stack(aTHX_ a) -# endif -# endif /* defined(PERL_CORE) */ -# endif /* defined(PERL_IN_SV_C) */ # if defined(PERL_MEM_LOG) # define mem_log_alloc Perl_mem_log_alloc # define mem_log_del_sv Perl_mem_log_del_sv diff --git a/proto.h b/proto.h index c2908b823f..4f99492847 100644 --- a/proto.h +++ b/proto.h @@ -2524,6 +2524,10 @@ PERL_CALLCONV void * Perl_more_bodies(pTHX_ const svtype sv_type); #define PERL_ARGS_ASSERT_MORE_BODIES +PERL_CALLCONV SV * +Perl_more_sv(pTHX); +#define PERL_ARGS_ASSERT_MORE_SV + PERL_CALLCONV const char * Perl_moreswitches(pTHX_ const char *s); #define PERL_ARGS_ASSERT_MORESWITCHES \ @@ -9229,10 +9233,6 @@ S_glob_assign_glob(pTHX_ SV * const dsv, SV * const ssv, const int dtype); # define PERL_ARGS_ASSERT_GLOB_ASSIGN_GLOB \ assert(dsv); assert(ssv) -PERL_CALLCONV SV * -Perl_more_sv(pTHX); -# define PERL_ARGS_ASSERT_MORE_SV - STATIC void S_not_a_number(pTHX_ SV * const sv); # define PERL_ARGS_ASSERT_NOT_A_NUMBER \ diff --git a/sv_inline.h b/sv_inline.h index df002df888..e54de31bad 100644 --- a/sv_inline.h +++ b/sv_inline.h @@ -63,10 +63,6 @@ ++PL_sv_count; \ } STMT_END -/* Perl_more_sv lives in sv.c, we don't want to inline it. - * but the function declaration seems to be needed. */ -SV* Perl_more_sv(pTHX); - /* new_SV(): return a new, empty SV head */ PERL_STATIC_INLINE SV* Perl_new_sv(pTHX_ const char *file, int line, const char *func)