README
1NAME
2 B::Hooks::OP::Check::EntersubForCV - Invoke callbacks on construction of
3 entersub OPs for certain CVs
4
5SYNOPSIS
6 From Perl
7 sub foo {}
8
9 use B::Hooks::OP::Check::EntersubForCV
10 \&foo => sub { warn "entersub for foo() being compiled" };
11
12 foo(); # callback is invoked when this like is compiled
13
14 no B::Hooks::OP::Check::EntersubForCV \&foo;
15
16 foo(); # callback isn't invoked
17
18 From C/XS
19 #include "hook_op_check_entersubforcv.h"
20
21 STATIC OP *
22 my_callback (pTHX_ OP *op, CV *cv, void *user_data) {
23 /* ... */
24 return op;
25 }
26
27 hook_op_check_id id;
28
29 /* register callback */
30 id = hook_op_check_entersubforcv (cv, my_callback, NULL);
31
32 /* unregister */
33 hook_op_check_entersubforcv_remove (id);
34
35DESCRIPTION
36Perl API
37 import / register
38 use B::Hooks::OP::Check::EntersubForCV
39 \&code => \&handler;
40
41 # or
42 my $id = B::Hooks::OP::Check::EntersubForCV::register(\&code => \&handler);
43
44 Register "handler" to be executed when an entersub opcode for the CV
45 "code" points to is compiled.
46
47 When using "register" an id that can be used for later removal of the
48 handler using "unregister" is returned.
49
50 unimport / unregister
51 no B::Hooks::OP::Check::EntersubForCV \&code;
52
53 # or
54 B::Hooks::OP::Check::EntersubForCV::unregister($id);
55
56 Stop calling the registered handler for "code" for all entersubs after
57 this.
58
59C API
60 TYPES
61 OP *(*hook_op_check_entersubforcv_cb) (pTHX_ OP *, CV *, void *)
62 The type the handlers need to implement.
63
64 FUNCTIONS
65 hook_op_check_id hook_op_check_entersubforcv (CV *cv, hook_op_check_entersubforcv_cb cb, void *user_data)
66 Register the callback "cb" to be called when an entersub opcode for "cv"
67 is compiled. "user_data" will be passed to the callback as the last
68 argument.
69
70 Returns an id that can be used to remove the handler using
71 "hook_op_check_entersubforcv_remove".
72
73 void *hook_op_check_entersubforcv_remove (hook_op_check_id id)
74 Remove a previously registered handler referred to by "id".
75
76 Returns the user data that was associated with the handler.
77
78SEE ALSO
79 B::Hooks::OP::Check
80
81AUTHOR
82 Florian Ragwitz <rafl@debian.org>
83
84COPYRIGHT AND LICENSE
85 Copyright (c) 2008, 2009 Florian Ragwitz
86
87 Copyright (c) 2011, 2012, 2017 Andrew Main (Zefram)
88
89 This module is free software.
90
91 You may distribute this code under the same terms as Perl itself.
92
93