summaryrefslogtreecommitdiff
path: root/bytecode.pl
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1999-06-27 14:28:49 +0000
committerGurusamy Sarathy <gsar@cpan.org>1999-06-27 14:28:49 +0000
commit0cb9638729211ea71a75ae8756c03ba21553bd53 (patch)
treef00e767824d620a63a26a857b6a37fcb6945f89d /bytecode.pl
parent4f4e629e089f1120f8e94984281df06ac4f885c5 (diff)
downloadperl-0cb9638729211ea71a75ae8756c03ba21553bd53.tar.gz
somewhat untested PERL_OBJECT cleanups (C++isms mostly
gone from the public API); PERL_OBJECT builds again on windows TODO: namespace-clean the typedefs in iperlsys.h and elsewhere; remove C++ remnants from public headers p4raw-id: //depot/perl@3553
Diffstat (limited to 'bytecode.pl')
-rw-r--r--bytecode.pl17
1 files changed, 15 insertions, 2 deletions
diff --git a/bytecode.pl b/bytecode.pl
index 955db20ea3..e12acbb0a6 100644
--- a/bytecode.pl
+++ b/bytecode.pl
@@ -67,9 +67,20 @@ print BYTERUN_C $c_header, <<'EOT';
#include "EXTERN.h"
#include "perl.h"
+#define NO_XSLOCKS
+#include "XSUB.h"
+
+#ifdef PERL_OBJECT
+#undef CALL_FPTR
+#define CALL_FPTR(fptr) (pPerl->*fptr)
+#undef PL_ppaddr
+#define PL_ppaddr (*get_ppaddr())
+#endif
+
#include "byterun.h"
#include "bytecode.h"
+
static int optype_size[] = {
EOT
my $i = 0;
@@ -89,7 +100,7 @@ static void **bytecode_obj_list;
static I32 bytecode_obj_list_fill = -1;
void *
-bset_obj_store(void *obj, I32 ix)
+bset_obj_store(pTHXo_ void *obj, I32 ix)
{
if (ix > bytecode_obj_list_fill) {
if (bytecode_obj_list_fill == -1)
@@ -103,7 +114,7 @@ bset_obj_store(void *obj, I32 ix)
}
void
-byterun(pTHX_ struct bytestream bs)
+byterun(pTHXo_ struct bytestream bs)
{
dTHR;
int insn;
@@ -237,6 +248,8 @@ print BYTERUN_H <<'EOT';
EOT
print BYTERUN_H <<'EOT';
+EXT void byterun(pTHXo_ struct bytestream bs);
+
#define INIT_SPECIALSV_LIST STMT_START { \
EOT
for ($i = 0; $i < @specialsv; $i++) {