diff options
author | Ben Morrow <ben@morrow.me.uk> | 2009-11-26 17:18:29 +0000 |
---|---|---|
committer | Rafael Garcia-Suarez <rgs@consttype.org> | 2010-07-12 10:40:47 +0200 |
commit | 1930840b26541ab67ff111a47ceab4753d798617 (patch) | |
tree | f27bbe5e370d51ad4f243eea906dc3b546f05efc /embedvar.h | |
parent | 3e2d3818e517e0037c1ab6a482f31d50271f9e27 (diff) | |
download | perl-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.h | 2 |
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 |