From 45826d9c097ca6244814faff2f85d6435067d27a Mon Sep 17 00:00:00 2001 From: "Paul \"LeoNerd\" Evans" Date: Mon, 13 Feb 2023 13:58:19 +0000 Subject: [PATCH] Move the macros which wrap sv_dup_inc() into sv.h --- pad.c | 2 -- regcomp.c | 2 -- sv.c | 15 --------------- sv.h | 18 ++++++++++++++++++ 4 files changed, 18 insertions(+), 19 deletions(-) diff --git a/pad.c b/pad.c index 2175da5134..6964001394 100644 --- a/pad.c +++ b/pad.c @@ -2477,8 +2477,6 @@ Perl_pad_push(pTHX_ PADLIST *padlist, int depth) #if defined(USE_ITHREADS) -# define av_dup_inc(s,t) MUTABLE_AV(sv_dup_inc((const SV *)s,t)) - /* =for apidoc padlist_dup diff --git a/regcomp.c b/regcomp.c index 7eebcaca95..e5e51022bf 100644 --- a/regcomp.c +++ b/regcomp.c @@ -13366,8 +13366,6 @@ Perl_regfree_internal(pTHX_ REGEXP * const rx) Safefree(ri); } -#define av_dup_inc(s, t) MUTABLE_AV(sv_dup_inc((const SV *)s, t)) -#define hv_dup_inc(s, t) MUTABLE_HV(sv_dup_inc((const SV *)s, t)) #define SAVEPVN(p, n) ((p) ? savepvn(p, n) : NULL) /* diff --git a/sv.c b/sv.c index 2805851f7f..2e167a09c6 100644 --- a/sv.c +++ b/sv.c @@ -13781,21 +13781,6 @@ ptr_table_* functions. #endif -/* Certain cases in Perl_ss_dup have been merged, by relying on the fact - that currently av_dup, gv_dup and hv_dup are the same as sv_dup. - If this changes, please unmerge ss_dup. - Likewise, sv_dup_inc_multiple() relies on this fact. */ -#define sv_dup_inc_NN(s,t) SvREFCNT_inc_NN(sv_dup_inc(s,t)) -#define av_dup(s,t) MUTABLE_AV(sv_dup((const SV *)s,t)) -#define av_dup_inc(s,t) MUTABLE_AV(sv_dup_inc((const SV *)s,t)) -#define hv_dup(s,t) MUTABLE_HV(sv_dup((const SV *)s,t)) -#define hv_dup_inc(s,t) MUTABLE_HV(sv_dup_inc((const SV *)s,t)) -#define cv_dup(s,t) MUTABLE_CV(sv_dup((const SV *)s,t)) -#define cv_dup_inc(s,t) MUTABLE_CV(sv_dup_inc((const SV *)s,t)) -#define io_dup(s,t) MUTABLE_IO(sv_dup((const SV *)s,t)) -#define io_dup_inc(s,t) MUTABLE_IO(sv_dup_inc((const SV *)s,t)) -#define gv_dup(s,t) MUTABLE_GV(sv_dup((const SV *)s,t)) -#define gv_dup_inc(s,t) MUTABLE_GV(sv_dup_inc((const SV *)s,t)) #define SAVEPV(p) ((p) ? savepv(p) : NULL) #define SAVEPVN(p,n) ((p) ? savepvn(p,n) : NULL) diff --git a/sv.h b/sv.h index 0af3011891..28aefd2e8f 100644 --- a/sv.h +++ b/sv.h @@ -2672,6 +2672,24 @@ Create a new IO, setting the reference count to 1. - STRUCT_OFFSET(XPVNV, xnv_u.xnv_nv)); \ } STMT_END +#if defined(PERL_CORE) && defined(USE_ITHREADS) +/* Certain cases in Perl_ss_dup have been merged, by relying on the fact + that currently av_dup, gv_dup and hv_dup are the same as sv_dup. + If this changes, please unmerge ss_dup. + Likewise, sv_dup_inc_multiple() relies on this fact. */ +# define sv_dup_inc_NN(s,t) SvREFCNT_inc_NN(sv_dup_inc(s,t)) +# define av_dup(s,t) MUTABLE_AV(sv_dup((const SV *)s,t)) +# define av_dup_inc(s,t) MUTABLE_AV(sv_dup_inc((const SV *)s,t)) +# define hv_dup(s,t) MUTABLE_HV(sv_dup((const SV *)s,t)) +# define hv_dup_inc(s,t) MUTABLE_HV(sv_dup_inc((const SV *)s,t)) +# define cv_dup(s,t) MUTABLE_CV(sv_dup((const SV *)s,t)) +# define cv_dup_inc(s,t) MUTABLE_CV(sv_dup_inc((const SV *)s,t)) +# define io_dup(s,t) MUTABLE_IO(sv_dup((const SV *)s,t)) +# define io_dup_inc(s,t) MUTABLE_IO(sv_dup_inc((const SV *)s,t)) +# define gv_dup(s,t) MUTABLE_GV(sv_dup((const SV *)s,t)) +# define gv_dup_inc(s,t) MUTABLE_GV(sv_dup_inc((const SV *)s,t)) +#endif + /* * ex: set ts=8 sts=4 sw=4 et: */