summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>1998-04-04 23:11:52 +0000
committerGurusamy Sarathy <gsar@cpan.org>1998-04-04 23:11:52 +0000
commit8931a351763bab7adf45abbc170bb711ffddf83b (patch)
tree5d7ee8bd137af952ffb6b359958989067041e142
parente826b3c791f291f41205a51805448110f3562b42 (diff)
downloadperl-8931a351763bab7adf45abbc170bb711ffddf83b.tar.gz
[win32] set up PUSHSTACK for __DIE__ and __WARN__ hooks also
p4raw-id: //depot/win32/perl@881
-rw-r--r--cop.h2
-rw-r--r--util.c9
2 files changed, 6 insertions, 5 deletions
diff --git a/cop.h b/cop.h
index 4b2e04ff41..5eebabab63 100644
--- a/cop.h
+++ b/cop.h
@@ -297,10 +297,8 @@ struct context {
#define SI_SIGNAL 4
#define SI_OVERLOAD 5
#define SI_DESTROY 6
-/* XXX todo
#define SI_WARNHOOK 7
#define SI_DIEHOOK 8
-*/
struct stackinfo {
AV * si_stack; /* stack for current runlevel */
diff --git a/util.c b/util.c
index c996081440..ac51f13f55 100644
--- a/util.c
+++ b/util.c
@@ -1304,11 +1304,12 @@ die(pat, va_alist)
SvREADONLY_on(msg);
SAVEFREESV(msg);
+ PUSHSTACK(SI_DIEHOOK);
PUSHMARK(SP);
XPUSHs(msg);
PUTBACK;
perl_call_sv((SV*)cv, G_DISCARD);
-
+ POPSTACK();
LEAVE;
}
}
@@ -1369,11 +1370,12 @@ croak(pat, va_alist)
SvREADONLY_on(msg);
SAVEFREESV(msg);
+ PUSHSTACK(SI_DIEHOOK);
PUSHMARK(SP);
XPUSHs(msg);
PUTBACK;
perl_call_sv((SV*)cv, G_DISCARD);
-
+ POPSTACK();
LEAVE;
}
}
@@ -1428,11 +1430,12 @@ warn(pat,va_alist)
SvREADONLY_on(msg);
SAVEFREESV(msg);
+ PUSHSTACK(SI_WARNHOOK);
PUSHMARK(SP);
XPUSHs(msg);
PUTBACK;
perl_call_sv((SV*)cv, G_DISCARD);
-
+ POPSTACK();
LEAVE;
return;
}