#if defined(PERL_IMPLICIT_CONTEXT) && !defined(PERL_NO_GET_CONTEXT) && !defined(PERL_CORE)
# undef aTHX
# undef aTHX_
-# undef _aTHX
# define aTHX PERL_GET_THX
# define aTHX_ aTHX,
-# define _aTHX ,aTHX
#endif
#if defined(PERL_CAPI)
#define reganode S_reganode
#define regatom S_regatom
#define regbranch S_regbranch
-#define regc S_regc
#define reguni S_reguni
#define regclass S_regclass
#define regclassutf8 S_regclassutf8
#define reganode(a,b) S_reganode(aTHX_ a,b)
#define regatom(a) S_regatom(aTHX_ a)
#define regbranch(a,b) S_regbranch(aTHX_ a,b)
-#define regc(a,b) S_regc(aTHX_ a,b)
#define reguni(a,b,c) S_reguni(aTHX_ a,b,c)
#define regclass() S_regclass(aTHX)
#define regclassutf8() S_regclassutf8(aTHX)
#define regatom S_regatom
#define S_regbranch CPerlObj::S_regbranch
#define regbranch S_regbranch
-#define S_regc CPerlObj::S_regc
-#define regc S_regc
#define S_reguni CPerlObj::S_reguni
#define reguni S_reguni
#define S_regclass CPerlObj::S_regclass
# define aTHXo pPerl
# undef aTHXo_
# define aTHXo_ aTHXo,
-# undef _aTHXo
-# define _aTHXo ,aTHXo
#endif /* PERL_OBJECT */
START_EXTERN_C
__END__
# Lines are of the form:
-# flags|return_type|function_name|return_type|arg1|arg2|...|argN
+# flags|return_type|function_name|arg1|arg2|...|argN
#
-# They may continue on multiple lines when \w| begins the next line.
+# A line may be continued on another by ending it with a backslash.
# Leading and trailing whitespace will be ignored in each component.
#
# flags are single letters with following meanings:
# endif
#endif
-#ifdef PERL_OBJECT
-# define VTBL this->*vtbl
-#else
-# define VTBL *vtbl
-#endif
-
static void restore_magic(pTHXo_ void *p);
static void unwind_handler_stack(pTHXo_ void *p);
while ((mg = *mgp) != 0) {
MGVTBL* vtbl = mg->mg_virtual;
if (!(mg->mg_flags & MGf_GSKIP) && vtbl && (vtbl->svt_get != NULL)) {
- (VTBL->svt_get)(aTHX_ sv, mg);
+ CALL_FTPR(vtbl->svt_get)(aTHX_ sv, mg);
/* Ignore this magic if it's been deleted */
if ((mg == (mgp_valid ? *mgp : SvMAGIC(sv))) &&
(mg->mg_flags & MGf_GSKIP))
(SSPTR(mgs_ix, MGS*))->mgs_flags = 0;
}
if (vtbl && (vtbl->svt_set != NULL))
- (VTBL->svt_set)(aTHX_ sv, mg);
+ CALL_FPTR(vtbl->svt_set)(aTHX_ sv, mg);
}
restore_magic(aTHXo_ (void*)mgs_ix);
mgs_ix = SSNEW(sizeof(MGS));
save_magic(mgs_ix, sv);
/* omit MGf_GSKIP -- not changed here */
- len = (VTBL->svt_len)(aTHX_ sv, mg);
+ len = CALL_FPTR(vtbl->svt_len)(aTHX_ sv, mg);
restore_magic(aTHXo_ (void*)mgs_ix);
return len;
}
mgs_ix = SSNEW(sizeof(MGS));
save_magic(mgs_ix, sv);
/* omit MGf_GSKIP -- not changed here */
- len = (VTBL->svt_len)(aTHX_ sv, mg);
+ len = CALL_FPTR(vtbl->svt_len)(aTHX_ sv, mg);
restore_magic(aTHXo_ (void*)mgs_ix);
return len;
}
/* omit GSKIP -- never set here */
if (vtbl && (vtbl->svt_clear != NULL))
- (VTBL->svt_clear)(aTHX_ sv, mg);
+ CALL_FPTR(vtbl->svt_clear)(aTHX_ sv, mg);
}
restore_magic(aTHXo_ (void*)mgs_ix);
MGVTBL* vtbl = mg->mg_virtual;
moremagic = mg->mg_moremagic;
if (vtbl && (vtbl->svt_free != NULL))
- (VTBL->svt_free)(aTHX_ sv, mg);
+ CALL_FPTR(vtbl->svt_free)(aTHX_ sv, mg);
if (mg->mg_ptr && mg->mg_type != 'g')
if (mg->mg_len >= 0)
Safefree(mg->mg_ptr);
#define PERL_IN_OP_C
#include "perl.h"
-#ifdef PERL_OBJECT
-#define CHECKCALL this->*PL_check
-#else
-#define CHECKCALL *PL_check
-#endif
-
/* #define PL_OP_SLAB_ALLOC */
#ifdef PL_OP_SLAB_ALLOC
? ( op_free((OP*)o), \
Perl_croak(aTHX_ "%s trapped by operation mask", PL_op_desc[type]), \
Nullop ) \
- : (CHECKCALL[type])(aTHX_ (OP*)o))
+ : CALL_FPTR(PL_check[type])(aTHX_ (OP*)o))
#define PAD_MAX 999999999
#define pTHXo CPerlObj *pPerl
#define pTHXo_ pTHXo,
-#define _pTHXo ,pTHXo
#define aTHXo this
#define aTHXo_ this,
-#define _aTHXo ,this
#define PERL_OBJECT_THIS aTHXo
#define PERL_OBJECT_THIS_ aTHXo_
-#define _PERL_OBJECT_THIS _aTHXo
#define dTHXoa(a) pTHXo = a
#define dTHXo dTHXoa(PERL_GET_THX)
#define pTHXx void
#define pTHXx_
-#define _pTHXx
#define aTHXx
#define aTHXx_
-#define _aTHXx
#else /* !PERL_OBJECT */
# define dTHXa(a) pTHX = a
# define dTHX dTHXa(PERL_GET_THX)
# define pTHX_ pTHX,
-# define _pTHX ,pTHX
# define aTHX_ aTHX,
-# define _aTHX ,aTHX
#endif
#define STATIC static
#ifndef pTHX
# define pTHX void
# define pTHX_
-# define _pTHX
# define aTHX
# define aTHX_
-# define _aTHX
# define dTHXa(a) dNOOP
# define dTHX dNOOP
#endif
#ifndef pTHXo
# define pTHXo pTHX
# define pTHXo_ pTHX_
-# define _pTHXo _pTHX
# define aTHXo aTHX
# define aTHXo_ aTHX_
-# define _aTHXo _aTHX
# define dTHXo dTHX
#endif
#ifndef pTHXx
# define pTHXx register PerlInterpreter *my_perl
# define pTHXx_ pTHXx,
-# define _pTHXx ,pTHXx
# define aTHXx my_perl
# define aTHXx_ aTHXx,
-# define _aTHXx ,aTHXx
# define dTHXx dTHX
#endif
# define aTHXo pPerl
# undef aTHXo_
# define aTHXo_ aTHXo,
-# undef _aTHXo
-# define _aTHXo ,aTHXo
#endif /* PERL_OBJECT */
START_EXTERN_C
#define DOCATCH(o) ((CATCH_GET == TRUE) ? docatch(o) : (o))
-#ifdef PERL_OBJECT
-#define CALLOP this->*PL_op
-#else
-#define CALLOP *PL_op
-#endif
-
static I32 sortcv(pTHXo_ SV *a, SV *b);
static I32 sv_ncmp(pTHXo_ SV *a, SV *b);
static I32 sv_i_ncmp(pTHXo_ SV *a, SV *b);
if (PL_op->op_type == OP_ENTERITER)
DIE(aTHX_ "Can't \"goto\" into the middle of a foreach loop",
label);
- (CALLOP->op_ppaddr)(aTHX);
+ CALL_FPTR(PL_op->op_ppaddr)(aTHX);
}
PL_op = oldop;
}
* know. Run now! Hope is in speed!" --Gandalf
*/
-#ifdef PERL_OBJECT
-#define CALLOP this->*PL_op
-#else
-#define CALLOP *PL_op
-#endif
-
int
Perl_runops_standard(pTHX)
{
dTHR;
- while ( PL_op = (CALLOP->op_ppaddr)(aTHX) ) ;
+ while ( PL_op = CALL_FPTR(PL_op->op_ppaddr)(aTHX) ) ;
TAINT_NOT;
return 0;
DEBUG_t(debop(PL_op));
DEBUG_P(debprof(PL_op));
}
- } while ( PL_op = (CALLOP->op_ppaddr)(aTHX) );
+ } while ( PL_op = CALL_FPTR(PL_op->op_ppaddr)(aTHX) );
TAINT_NOT;
return 0;
#define PERL_IN_SV_C
#include "perl.h"
-#ifdef PERL_OBJECT
-#define VTBL this->*vtbl
-#else /* !PERL_OBJECT */
-#define VTBL *vtbl
-#endif /* PERL_OBJECT */
-
#define FCALL *f
#define SV_CHECK_THINKFIRST(sv) if (SvTHINKFIRST(sv)) sv_force_normal(sv)
MGVTBL* vtbl = mg->mg_virtual;
*mgp = mg->mg_moremagic;
if (vtbl && (vtbl->svt_free != NULL))
- (VTBL->svt_free)(aTHX_ sv, mg);
+ CALL_FPTR(vtbl->svt_free)(aTHX_ sv, mg);
if (mg->mg_ptr && mg->mg_type != 'g')
if (mg->mg_len >= 0)
Safefree(mg->mg_ptr);