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. */