This is a live mirror of the Perl 5 development currently hosted at
https://github.com/perl/perl5
https://perl5.git.perl.org
/
perl5.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Skip PL_sig_sv when PERL_IMPLICIT_CONTEXT is defined
[perl5.git]
/
scope.c
diff --git
a/scope.c
b/scope.c
index
9bb89b7
..
315feee
100644
(file)
--- a/
scope.c
+++ b/
scope.c
@@
-170,7
+170,7
@@
S_save_scalar_at(pTHX_ SV **sptr)
(SVp_NOK|SVp_POK)) >> PRIVSHIFT;
PL_tainted = oldtainted;
}
(SVp_NOK|SVp_POK)) >> PRIVSHIFT;
PL_tainted = oldtainted;
}
- SvMAGIC
(sv) = SvMAGIC(osv
);
+ SvMAGIC
_set(sv, SvMAGIC(osv)
);
/* if it's a special scalar or if it has no 'set' magic,
* propagate the SvREADONLY flag. --rgs 20030922 */
for (mg = SvMAGIC(sv); mg; mg = mg->mg_moremagic) {
/* if it's a special scalar or if it has no 'set' magic,
* propagate the SvREADONLY flag. --rgs 20030922 */
for (mg = SvMAGIC(sv); mg; mg = mg->mg_moremagic) {
@@
-265,7
+265,7
@@
Perl_save_gp(pTHX_ GV *gv, I32 empty)
{
SSGROW(6);
SSPUSHIV((IV)SvLEN(gv));
{
SSGROW(6);
SSPUSHIV((IV)SvLEN(gv));
- SvLEN
(gv) = 0
; /* forget that anything was allocated here */
+ SvLEN
_set(gv, 0)
; /* forget that anything was allocated here */
SSPUSHIV((IV)SvCUR(gv));
SSPUSHPTR(SvPVX(gv));
SvPOK_off(gv);
SSPUSHIV((IV)SvCUR(gv));
SSPUSHPTR(SvPVX(gv));
SvPOK_off(gv);
@@
-287,7
+287,9
@@
Perl_save_gp(pTHX_ GV *gv, I32 empty)
GvGP(gv) = gp_ref(gp);
GvSV(gv) = NEWSV(72,0);
GvLINE(gv) = CopLINE(PL_curcop);
GvGP(gv) = gp_ref(gp);
GvSV(gv) = NEWSV(72,0);
GvLINE(gv) = CopLINE(PL_curcop);
- GvFILE(gv) = CopFILE(PL_curcop) ? CopFILE(PL_curcop) : "";
+ /* XXX Ideally this cast would be replaced with a change to const char*
+ in the struct. */
+ GvFILE(gv) = CopFILE(PL_curcop) ? CopFILE(PL_curcop) : (char *) "";
GvEGV(gv) = gv;
}
else {
GvEGV(gv) = gv;
}
else {
@@
-312,10
+314,10
@@
Perl_save_ary(pTHX_ GV *gv)
GvAV(gv) = Null(AV*);
av = GvAVn(gv);
if (SvMAGIC(oav)) {
GvAV(gv) = Null(AV*);
av = GvAVn(gv);
if (SvMAGIC(oav)) {
- SvMAGIC
(av) = SvMAGIC(oav
);
+ SvMAGIC
_set(av, SvMAGIC(oav)
);
SvFLAGS((SV*)av) |= SvMAGICAL(oav);
SvMAGICAL_off(oav);
SvFLAGS((SV*)av) |= SvMAGICAL(oav);
SvMAGICAL_off(oav);
- SvMAGIC
(oav) = 0
;
+ SvMAGIC
_set(oav, NULL)
;
PL_localizing = 1;
SvSETMAGIC((SV*)av);
PL_localizing = 0;
PL_localizing = 1;
SvSETMAGIC((SV*)av);
PL_localizing = 0;
@@
-336,10
+338,10
@@
Perl_save_hash(pTHX_ GV *gv)
GvHV(gv) = Null(HV*);
hv = GvHVn(gv);
if (SvMAGIC(ohv)) {
GvHV(gv) = Null(HV*);
hv = GvHVn(gv);
if (SvMAGIC(ohv)) {
- SvMAGIC
(hv) = SvMAGIC(ohv
);
+ SvMAGIC
_set(hv, SvMAGIC(ohv)
);
SvFLAGS((SV*)hv) |= SvMAGICAL(ohv);
SvMAGICAL_off(ohv);
SvFLAGS((SV*)hv) |= SvMAGICAL(ohv);
SvMAGICAL_off(ohv);
- SvMAGIC
(ohv) = 0
;
+ SvMAGIC
_set(ohv, NULL)
;
PL_localizing = 1;
SvSETMAGIC((SV*)hv);
PL_localizing = 0;
PL_localizing = 1;
SvSETMAGIC((SV*)hv);
PL_localizing = 0;
@@
-467,7
+469,11
@@
Perl_save_threadsv(pTHX_ PADOFFSET i)
{
Perl_croak(aTHX_ "panic: save_threadsv called in non-threaded perl");
(void)i;
{
Perl_croak(aTHX_ "panic: save_threadsv called in non-threaded perl");
(void)i;
+#ifndef HASATTRIBUTE
+ /* No __attribute__, so the compiler doesn't know that croak never returns
+ */
return 0;
return 0;
+#endif
}
void
}
void
@@
-719,10
+725,10
@@
Perl_leave_scope(pTHX_ I32 base)
SvTYPE(sv) != SVt_PVGV)
{
(void)SvUPGRADE(value, SvTYPE(sv));
SvTYPE(sv) != SVt_PVGV)
{
(void)SvUPGRADE(value, SvTYPE(sv));
- SvMAGIC
(value) = SvMAGIC(sv
);
+ SvMAGIC
_set(value, SvMAGIC(sv)
);
SvFLAGS(value) |= SvMAGICAL(sv);
SvMAGICAL_off(sv);
SvFLAGS(value) |= SvMAGICAL(sv);
SvMAGICAL_off(sv);
- SvMAGIC
(sv) = 0
;
+ SvMAGIC
_set(sv, 0)
;
}
/* XXX This branch is pretty bogus. This code irretrievably
* clears(!) the magic on the SV (either to avoid further
}
/* XXX This branch is pretty bogus. This code irretrievably
* clears(!) the magic on the SV (either to avoid further
@@
-737,7
+743,7
@@
Perl_leave_scope(pTHX_ I32 base)
SvMAGICAL_off(value);
/* XXX this is a leak when we get here because the
* mg_get() in save_scalar_at() croaked */
SvMAGICAL_off(value);
/* XXX this is a leak when we get here because the
* mg_get() in save_scalar_at() croaked */
- SvMAGIC
(value) = 0
;
+ SvMAGIC
_set(value, NULL)
;
}
*(SV**)ptr = value;
SvREFCNT_dec(sv);
}
*(SV**)ptr = value;
SvREFCNT_dec(sv);
@@
-753,10
+759,10
@@
Perl_leave_scope(pTHX_ I32 base)
gv = (GV*)SSPOPPTR;
if (GvAV(gv)) {
AV * const goner = GvAV(gv);
gv = (GV*)SSPOPPTR;
if (GvAV(gv)) {
AV * const goner = GvAV(gv);
- SvMAGIC
(av) = SvMAGIC(goner
);
+ SvMAGIC
_set(av, SvMAGIC(goner)
);
SvFLAGS((SV*)av) |= SvMAGICAL(goner);
SvMAGICAL_off(goner);
SvFLAGS((SV*)av) |= SvMAGICAL(goner);
SvMAGICAL_off(goner);
- SvMAGIC
(goner) = 0
;
+ SvMAGIC
_set(goner, NULL)
;
SvREFCNT_dec(goner);
}
GvAV(gv) = av;
SvREFCNT_dec(goner);
}
GvAV(gv) = av;
@@
-771,10
+777,10
@@
Perl_leave_scope(pTHX_ I32 base)
gv = (GV*)SSPOPPTR;
if (GvHV(gv)) {
HV * const goner = GvHV(gv);
gv = (GV*)SSPOPPTR;
if (GvHV(gv)) {
HV * const goner = GvHV(gv);
- SvMAGIC
(hv) = SvMAGIC(goner
);
+ SvMAGIC
_set(hv, SvMAGIC(goner)
);
SvFLAGS(hv) |= SvMAGICAL(goner);
SvMAGICAL_off(goner);
SvFLAGS(hv) |= SvMAGICAL(goner);
SvMAGICAL_off(goner);
- SvMAGIC
(goner) = 0
;
+ SvMAGIC
_set(goner, NULL)
;
SvREFCNT_dec(goner);
}
GvHV(gv) = hv;
SvREFCNT_dec(goner);
}
GvHV(gv) = hv;
@@
-839,9
+845,9
@@
Perl_leave_scope(pTHX_ I32 base)
if (SvPVX(gv) && SvLEN(gv) > 0) {
Safefree(SvPVX(gv));
}
if (SvPVX(gv) && SvLEN(gv) > 0) {
Safefree(SvPVX(gv));
}
- SvPV
X(gv) = (char *)SSPOPPTR
;
- SvCUR
(gv) = (STRLEN)SSPOPIV
;
- SvLEN
(gv) = (STRLEN)SSPOPIV
;
+ SvPV
_set(gv, (char *)SSPOPPTR)
;
+ SvCUR
_set(gv, (STRLEN)SSPOPIV)
;
+ SvLEN
_set(gv, (STRLEN)SSPOPIV)
;
gp_free(gv);
GvGP(gv) = (GP*)ptr;
if (GvCVu(gv))
gp_free(gv);
GvGP(gv) = (GP*)ptr;
if (GvCVu(gv))