cvs commit: ponie/perl sv.c
[email protected] (Nicholas Clark) 18 Jun 2004 10:34:44 -0000
| Newsgroups | perl.ponie.changes |
|---|---|
| Message-ID | <[email protected]> |
cvsuser 04/06/18 03:34:44
Modified: perl sv.c
Log:
Convert plant_SV and uproot_SV from macros to real functions.
Revision Changes Path
1.36 +18 -46 ponie/perl/sv.c
Index: sv.c
===================================================================
RCS file: /cvs/public/ponie/perl/sv.c,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -w -r1.35 -r1.36
--- sv.c 17 Jun 2004 14:51:37 -0000 1.35
+++ sv.c 18 Jun 2004 10:34:43 -0000 1.36
@@ -160,26 +160,25 @@
* "A time to plant, and a time to uproot what was planted..."
*/
-#define plant_SV(p) \
- STMT_START { \
- SvANY(p) = (void *)PL_sv_root; \
- SvFLAGS(p) = SVTYPEMASK; \
- PL_sv_root = (p); \
- --PL_sv_count; \
- } STMT_END
+STATIC void
+S_plant_SV(pTHX_ SV *p) {
+ SvANY(p) = (void *)PL_sv_root;
+ SvFLAGS(p) = SVTYPEMASK;
+ PL_sv_root = (p);
+ --PL_sv_count;
+}
/* sv_mutex must be held while calling uproot_SV() */
-#define uproot_SV(p) \
- STMT_START { \
- (p) = PL_sv_root; \
- PL_sv_root = (SV*)SvANY(p); \
- ++PL_sv_count; \
- } STMT_END
-
+STATIC SV *
+S_uproot_SV(pTHX) {
+ SV *p = PL_sv_root;
+ PL_sv_root = (SV*)SvANY(p);
+ ++PL_sv_count;
+ return p;
+}
/* new_SV(): return a new, empty SV head */
-#ifdef DEBUG_LEAKING_SCALARS
/* provide a real function for a debugger to play with */
STATIC SV*
S_new_SV(pTHX)
@@ -188,7 +187,7 @@
LOCK_SV_MUTEX;
if (PL_sv_root)
- uproot_SV(sv);
+ sv = S_uproot_SV(aTHX);
else
sv = more_sv();
UNLOCK_SV_MUTEX;
@@ -200,34 +199,16 @@
}
# define new_SV(p) (p)=S_new_SV(aTHX)
-#else
-# define new_SV(p) \
- STMT_START { \
- LOCK_SV_MUTEX; \
- if (PL_sv_root) \
- uproot_SV(p); \
- else \
- (p) = more_sv(); \
- UNLOCK_SV_MUTEX; \
- SvANY(p) = 0; \
- SvREFCNT(p) = 1; \
- SvFLAGS(p) = 0; \
- SvPMC_off(p); \
- } STMT_END
-#endif
-
/* del_SV(): return an empty SV head to the free list */
-#ifdef DEBUGGING
-
#define del_SV(p) \
STMT_START { \
LOCK_SV_MUTEX; \
if (DEBUG_D_TEST) \
del_sv(p); \
else \
- plant_SV(p); \
+ S_plant_SV(aTHX_ p); \
UNLOCK_SV_MUTEX; \
} STMT_END
@@ -253,15 +234,9 @@
return;
}
}
- plant_SV(p);
+ S_plant_SV(aTHX_ p);
}
-#else /* ! DEBUGGING */
-
-#define del_SV(p) plant_SV(p)
-
-#endif /* DEBUGGING */
-
/*
=head1 SV Manipulation Functions
@@ -307,8 +282,6 @@
STATIC SV*
S_more_sv(pTHX)
{
- register SV* sv;
-
if (PL_nice_chunk) {
sv_add_arena(PL_nice_chunk, PL_nice_chunk_size, 0);
PL_nice_chunk = Nullch;
@@ -319,8 +292,7 @@
New(704,chunk,1008,char); /* Safefree() in sv_free_arenas() */
sv_add_arena(chunk, 1008, 0);
}
- uproot_SV(sv);
- return sv;
+ return S_uproot_SV(aTHX);
}
/* visit(): call the named function for each non-free SV in the arenas. */