summaryrefslogtreecommitdiff
path: root/embedvar.h
diff options
context:
space:
mode:
authorBen Morrow <ben@morrow.me.uk>2009-11-26 17:18:29 +0000
committerRafael Garcia-Suarez <rgs@consttype.org>2010-07-12 10:40:47 +0200
commit1930840b26541ab67ff111a47ceab4753d798617 (patch)
treef27bbe5e370d51ad4f243eea906dc3b546f05efc /embedvar.h
parent3e2d3818e517e0037c1ab6a482f31d50271f9e27 (diff)
downloadperl-1930840b26541ab67ff111a47ceab4753d798617.tar.gz
Generic hooks into Perl_block_{start,end}.
These take the form of a vtable pushed onto the new PL_blockhooks array. This could probably do with a API around it later. Separate pre_end and post_end hooks are needed to capture globals before the stack is unwound (like needblockscope in the existing code). The intention is that once a vtable is installed it never gets removed, so where necessary extensions using this will need to use a hinthv element to determine whether to do anything or not.
Diffstat (limited to 'embedvar.h')
-rw-r--r--embedvar.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/embedvar.h b/embedvar.h
index 428147f636..dde1f279d8 100644
--- a/embedvar.h
+++ b/embedvar.h
@@ -71,6 +71,7 @@
#define PL_basetime (vTHX->Ibasetime)
#define PL_beginav (vTHX->Ibeginav)
#define PL_beginav_save (vTHX->Ibeginav_save)
+#define PL_blockhooks (vTHX->Iblockhooks)
#define PL_body_arenas (vTHX->Ibody_arenas)
#define PL_body_roots (vTHX->Ibody_roots)
#define PL_bodytarget (vTHX->Ibodytarget)
@@ -400,6 +401,7 @@
#define PL_Ibasetime PL_basetime
#define PL_Ibeginav PL_beginav
#define PL_Ibeginav_save PL_beginav_save
+#define PL_Iblockhooks PL_blockhooks
#define PL_Ibody_arenas PL_body_arenas
#define PL_Ibody_roots PL_body_roots
#define PL_Ibodytarget PL_bodytarget