summaryrefslogtreecommitdiff
path: root/sv.c
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1998-02-22 03:09:55 +0000
committerGurusamy Sarathy <gsar@cpan.org>1998-02-22 03:09:55 +0000
commit611e57134ef8720264c53f5e0589f41461af4dcb (patch)
tree7901de389646fca2b4f19dc03c78c679f294afa4 /sv.c
parent6ad2b1bc3b01dc0cbc9f3d6840532b8e64de9f53 (diff)
parent2a321948466e7bb48bfd30dd6612a9a479df612a (diff)
downloadperl-611e57134ef8720264c53f5e0589f41461af4dcb.tar.gz
[asperl] integrate latest win32 branch
p4raw-id: //depot/asperl@569
Diffstat (limited to 'sv.c')
-rw-r--r--sv.c36
1 files changed, 18 insertions, 18 deletions
diff --git a/sv.c b/sv.c
index 93fcaa60be..a4d72bcf42 100644
--- a/sv.c
+++ b/sv.c
@@ -65,6 +65,8 @@ static void sv_mortalgrow _((void));
static void sv_unglob _((SV* sv));
static void sv_check_thinkfirst _((SV *sv));
+#define SV_CHECK_THINKFIRST(sv) if (SvTHINKFIRST(sv)) sv_check_thinkfirst(sv)
+
#ifndef PURIFY
static void *my_safemalloc(MEM_SIZE size);
#endif
@@ -1112,7 +1114,7 @@ sv_grow(SV* sv, unsigned long newlen)
void
sv_setiv(register SV *sv, IV i)
{
- sv_check_thinkfirst(sv);
+ SV_CHECK_THINKFIRST(sv);
switch (SvTYPE(sv)) {
case SVt_NULL:
sv_upgrade(sv, SVt_IV);
@@ -1173,7 +1175,7 @@ sv_setuv_mg(register SV *sv, UV u)
void
sv_setnv(register SV *sv, double num)
{
- sv_check_thinkfirst(sv);
+ SV_CHECK_THINKFIRST(sv);
switch (SvTYPE(sv)) {
case SVt_NULL:
case SVt_IV:
@@ -1875,7 +1877,7 @@ sv_setsv(SV *dstr, register SV *sstr)
if (sstr == dstr)
return;
- sv_check_thinkfirst(dstr);
+ SV_CHECK_THINKFIRST(dstr);
if (!sstr)
sstr = &sv_undef;
stype = SvTYPE(sstr);
@@ -2210,7 +2212,7 @@ sv_setpvn(register SV *sv, register const char *ptr, register STRLEN len)
register char *dptr;
assert(len >= 0); /* STRLEN is probably unsigned, so this may
elicit a warning, but it won't hurt. */
- sv_check_thinkfirst(sv);
+ SV_CHECK_THINKFIRST(sv);
if (!ptr) {
(void)SvOK_off(sv);
return;
@@ -2243,7 +2245,7 @@ sv_setpv(register SV *sv, register const char *ptr)
{
register STRLEN len;
- sv_check_thinkfirst(sv);
+ SV_CHECK_THINKFIRST(sv);
if (!ptr) {
(void)SvOK_off(sv);
return;
@@ -2273,7 +2275,7 @@ sv_setpv_mg(register SV *sv, register const char *ptr)
void
sv_usepvn(register SV *sv, register char *ptr, register STRLEN len)
{
- sv_check_thinkfirst(sv);
+ SV_CHECK_THINKFIRST(sv);
(void)SvUPGRADE(sv, SVt_PV);
if (!ptr) {
(void)SvOK_off(sv);
@@ -2300,15 +2302,13 @@ sv_usepvn_mg(register SV *sv, register char *ptr, register STRLEN len)
STATIC void
sv_check_thinkfirst(register SV *sv)
{
- if (SvTHINKFIRST(sv)) {
- if (SvREADONLY(sv)) {
- dTHR;
- if (curcop != &compiling)
- croak(no_modify);
- }
- if (SvROK(sv))
- sv_unref(sv);
+ if (SvREADONLY(sv)) {
+ dTHR;
+ if (curcop != &compiling)
+ croak(no_modify);
}
+ if (SvROK(sv))
+ sv_unref(sv);
}
void
@@ -2320,7 +2320,7 @@ sv_chop(register SV *sv, register char *ptr) /* like set but assuming ptr is in
if (!ptr || !SvPOKp(sv))
return;
- sv_check_thinkfirst(sv);
+ SV_CHECK_THINKFIRST(sv);
if (SvTYPE(sv) < SVt_PVIV)
sv_upgrade(sv,SVt_PVIV);
@@ -2693,7 +2693,7 @@ void
sv_replace(register SV *sv, register SV *nsv)
{
U32 refcnt = SvREFCNT(sv);
- sv_check_thinkfirst(sv);
+ SV_CHECK_THINKFIRST(sv);
if (SvREFCNT(nsv) != 1)
warn("Reference miscount in sv_replace()");
if (SvMAGICAL(sv)) {
@@ -3090,7 +3090,7 @@ sv_gets(register SV *sv, register PerlIO *fp, I32 append)
register I32 cnt;
I32 i;
- sv_check_thinkfirst(sv);
+ SV_CHECK_THINKFIRST(sv);
(void)SvUPGRADE(sv, SVt_PV);
SvSCREAM_off(sv);
@@ -3994,7 +3994,7 @@ newSVrv(SV *rv, char *classname)
SvREFCNT(sv) = 0;
SvFLAGS(sv) = 0;
- sv_check_thinkfirst(rv);
+ SV_CHECK_THINKFIRST(rv);
#ifdef OVERLOAD
SvAMAGIC_off(rv);
#endif /* OVERLOAD */