summaryrefslogtreecommitdiff
path: root/perl.c
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@engin.umich.edu>1997-06-13 15:34:36 +1200
committerTim Bunce <Tim.Bunce@ig.co.uk>1997-08-07 00:00:00 +1200
commitd6602a8c317a25957738ed94749408b8c40cda5f (patch)
tree156b01f27e3a17f57538297573e8fb34f2bfd6e4 /perl.c
parentd1f3fb15f579862f85c82ed69eba4baa20281b3c (diff)
downloadperl-d6602a8c317a25957738ed94749408b8c40cda5f.tar.gz
Re: Calling Perl from within C from within Perl
On Mon, 30 Jun 1997 13:26:33 EDT, Kenneth Albanowski wrote: >[GIMME after perl_call*() coredumps] >Is perl_call_sv mucking with the current op? That's the only problem that >looks vaguely reasonable. op will be null after perl_call_sv(), and GIMME looks in op to find the context. I tend to use GIMME only in the declaration initializers, so have never run into this trap before. I recommend this patch. p5p-msgid: 199706301829.OAA05426@aatma.engin.umich.edu private-msgid: 199706301842.OAA05569@aatma.engin.umich.edu
Diffstat (limited to 'perl.c')
-rw-r--r--perl.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/perl.c b/perl.c
index 8ef13a3288..7c84173abc 100644
--- a/perl.c
+++ b/perl.c
@@ -1017,6 +1017,7 @@ I32 flags; /* See G_* flags in cop.h */
bool oldcatch = CATCH_GET;
dJMPENV;
int ret;
+ OP* oldop = op;
if (flags & G_DISCARD) {
ENTER;
@@ -1139,6 +1140,7 @@ I32 flags; /* See G_* flags in cop.h */
FREETMPS;
LEAVE;
}
+ op = oldop;
return retval;
}