#define HALF_UPGRADE(start,end) \
STMT_START { \
U8* NeWsTr; \
- STRLEN LeN = LeN = (end) - (start); \
+ STRLEN LeN = (end) - (start); \
NeWsTr = bytes_to_utf8(start, &LeN); \
Copy(NeWsTr,start,LeN,U8*); \
- end = (start) + len; \
+ end = (start) + LeN; \
} STMT_END
#define cv_dump S_cv_dump
#define cv_clone2 S_cv_clone2
#define scalar_mod_type S_scalar_mod_type
-#define method_2entersub S_method_2entersub
#define my_kid S_my_kid
#define dup_attrlist S_dup_attrlist
#define apply_attrs S_apply_attrs
#define cv_dump(a) S_cv_dump(aTHX_ a)
#define cv_clone2(a,b) S_cv_clone2(aTHX_ a,b)
#define scalar_mod_type(a,b) S_scalar_mod_type(aTHX_ a,b)
-#define method_2entersub(a,b,c) S_method_2entersub(aTHX_ a,b,c)
#define my_kid(a,b) S_my_kid(aTHX_ a,b)
#define dup_attrlist(a) S_dup_attrlist(aTHX_ a)
#define apply_attrs(a,b,c) S_apply_attrs(aTHX_ a,b,c)
#define cv_clone2 S_cv_clone2
#define S_scalar_mod_type CPerlObj::S_scalar_mod_type
#define scalar_mod_type S_scalar_mod_type
-#define S_method_2entersub CPerlObj::S_method_2entersub
-#define method_2entersub S_method_2entersub
#define S_my_kid CPerlObj::S_my_kid
#define my_kid S_my_kid
#define S_dup_attrlist CPerlObj::S_dup_attrlist
#define PL_exitlistlen (PERL_GET_INTERP->Iexitlistlen)
#define PL_expect (PERL_GET_INTERP->Iexpect)
#define PL_fdpid (PERL_GET_INTERP->Ifdpid)
+#define PL_fdpid_mutex (PERL_GET_INTERP->Ifdpid_mutex)
#define PL_filemode (PERL_GET_INTERP->Ifilemode)
#define PL_forkprocess (PERL_GET_INTERP->Iforkprocess)
#define PL_formfeed (PERL_GET_INTERP->Iformfeed)
#define PL_subname (PERL_GET_INTERP->Isubname)
#define PL_sv_arenaroot (PERL_GET_INTERP->Isv_arenaroot)
#define PL_sv_count (PERL_GET_INTERP->Isv_count)
+#define PL_sv_lock_mutex (PERL_GET_INTERP->Isv_lock_mutex)
#define PL_sv_mutex (PERL_GET_INTERP->Isv_mutex)
#define PL_sv_no (PERL_GET_INTERP->Isv_no)
#define PL_sv_objcount (PERL_GET_INTERP->Isv_objcount)
#define PL_exitlistlen (vTHX->Iexitlistlen)
#define PL_expect (vTHX->Iexpect)
#define PL_fdpid (vTHX->Ifdpid)
+#define PL_fdpid_mutex (vTHX->Ifdpid_mutex)
#define PL_filemode (vTHX->Ifilemode)
#define PL_forkprocess (vTHX->Iforkprocess)
#define PL_formfeed (vTHX->Iformfeed)
#define PL_subname (vTHX->Isubname)
#define PL_sv_arenaroot (vTHX->Isv_arenaroot)
#define PL_sv_count (vTHX->Isv_count)
+#define PL_sv_lock_mutex (vTHX->Isv_lock_mutex)
#define PL_sv_mutex (vTHX->Isv_mutex)
#define PL_sv_no (vTHX->Isv_no)
#define PL_sv_objcount (vTHX->Isv_objcount)
#define PL_exitlistlen (aTHXo->interp.Iexitlistlen)
#define PL_expect (aTHXo->interp.Iexpect)
#define PL_fdpid (aTHXo->interp.Ifdpid)
+#define PL_fdpid_mutex (aTHXo->interp.Ifdpid_mutex)
#define PL_filemode (aTHXo->interp.Ifilemode)
#define PL_forkprocess (aTHXo->interp.Iforkprocess)
#define PL_formfeed (aTHXo->interp.Iformfeed)
#define PL_subname (aTHXo->interp.Isubname)
#define PL_sv_arenaroot (aTHXo->interp.Isv_arenaroot)
#define PL_sv_count (aTHXo->interp.Isv_count)
+#define PL_sv_lock_mutex (aTHXo->interp.Isv_lock_mutex)
#define PL_sv_mutex (aTHXo->interp.Isv_mutex)
#define PL_sv_no (aTHXo->interp.Isv_no)
#define PL_sv_objcount (aTHXo->interp.Isv_objcount)
#define PL_Iexitlistlen PL_exitlistlen
#define PL_Iexpect PL_expect
#define PL_Ifdpid PL_fdpid
+#define PL_Ifdpid_mutex PL_fdpid_mutex
#define PL_Ifilemode PL_filemode
#define PL_Iforkprocess PL_forkprocess
#define PL_Iformfeed PL_formfeed
#define PL_Isubname PL_subname
#define PL_Isv_arenaroot PL_sv_arenaroot
#define PL_Isv_count PL_sv_count
+#define PL_Isv_lock_mutex PL_sv_lock_mutex
#define PL_Isv_mutex PL_sv_mutex
#define PL_Isv_no PL_sv_no
#define PL_Isv_objcount PL_sv_objcount
#define PL_expect (*Perl_Iexpect_ptr(aTHXo))
#undef PL_fdpid
#define PL_fdpid (*Perl_Ifdpid_ptr(aTHXo))
+#undef PL_fdpid_mutex
+#define PL_fdpid_mutex (*Perl_Ifdpid_mutex_ptr(aTHXo))
#undef PL_filemode
#define PL_filemode (*Perl_Ifilemode_ptr(aTHXo))
#undef PL_forkprocess
#define PL_sv_arenaroot (*Perl_Isv_arenaroot_ptr(aTHXo))
#undef PL_sv_count
#define PL_sv_count (*Perl_Isv_count_ptr(aTHXo))
+#undef PL_sv_lock_mutex
+#define PL_sv_lock_mutex (*Perl_Isv_lock_mutex_ptr(aTHXo))
#undef PL_sv_mutex
#define PL_sv_mutex (*Perl_Isv_mutex_ptr(aTHXo))
#undef PL_sv_no
=for hackers
Found in file sv.h
-=item SvLOCK
-
-Aquires an internal mutex for a SV. Used to make sure multiple threads
-don't stomp on the guts of an SV at the same time
-
- void SvLOCK(SV* sv)
-
-=for hackers
-Found in file sv.h
-
=item SvNIOK
Returns a boolean indicating whether the SV contains a number, integer or
=for hackers
Found in file sv.h
-=item SvUNLOCK
-
-Release the internal mutex for an SV.
-
- void SvUNLOCK(SV* sv)
-
-=for hackers
-Found in file sv.h
-
=item SvUPGRADE
Used to upgrade an SV to a more complex form. Uses C<sv_upgrade> to
PERL_CALLCONV OP* Perl_append_elem(pTHX_ I32 optype, OP* head, OP* tail);
PERL_CALLCONV OP* Perl_append_list(pTHX_ I32 optype, LISTOP* first, LISTOP* last);
PERL_CALLCONV I32 Perl_apply(pTHX_ I32 type, SV** mark, SV** sp);
-PERL_CALLCONV void Perl_apply_attrs_string(pTHX_ char *stashpv, CV *cv, char *attrstr, STRLEN len)
-#ifdef CHECK_FORMAT
- __attribute__((format(printf,pTHX_3,pTHX_4)))
-#endif
-;
+PERL_CALLCONV void Perl_apply_attrs_string(pTHX_ char *stashpv, CV *cv, char *attrstr, STRLEN len);
PERL_CALLCONV SV* Perl_avhv_delete_ent(pTHX_ AV *ar, SV* keysv, I32 flags, U32 hash);
PERL_CALLCONV bool Perl_avhv_exists_ent(pTHX_ AV *ar, SV* keysv, U32 hash);
PERL_CALLCONV SV** Perl_avhv_fetch_ent(pTHX_ AV *ar, SV* keysv, I32 lval, U32 hash);
STATIC void S_cv_dump(pTHX_ CV *cv);
STATIC CV* S_cv_clone2(pTHX_ CV *proto, CV *outside);
STATIC bool S_scalar_mod_type(pTHX_ OP *o, I32 type);
-STATIC OP * S_method_2entersub(pTHX_ OP *o, OP *o2, OP *svop);
STATIC OP * S_my_kid(pTHX_ OP *o, OP *attrs);
STATIC OP * S_dup_attrlist(pTHX_ OP *o);
STATIC void S_apply_attrs(pTHX_ HV *stash, SV *target, OP *attrs);