logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

B::Hooks::OP::Check::EntersubForCV - Invoke callbacks on construction of entersub OPs for certain CVs

Author

       Florian Ragwitz <rafl@debian.org>

C Api

TYPESOP*(*hook_op_check_entersubforcv_cb)(pTHX_OP*,CV*,void*)

       The type the handlers need to implement.

   FUNCTIONShook_op_check_idhook_op_check_entersubforcv(CV*cv,hook_op_check_entersubforcv_cbcb,void*user_data)

       Register the callback "cb" to be called when an entersub opcode for "cv" is compiled. "user_data" will be
       passed to the callback as the last argument.

       Returns an id that can be used to remove the handler using "hook_op_check_entersubforcv_remove".

       void*hook_op_check_entersubforcv_remove(hook_op_check_idid)

       Remove a previously registered handler referred to by "id".

       Returns the user data that was associated with the handler.

Description

Name

       B::Hooks::OP::Check::EntersubForCV - Invoke callbacks on construction of entersub OPs for certain CVs

Perl Api

import/register
           use B::Hooks::OP::Check::EntersubForCV
               \&code => \&handler;

           # or
           my $id = B::Hooks::OP::Check::EntersubForCV::register(\&code => \&handler);

       Register "handler" to be executed when an entersub opcode for the CV "code" points to is compiled.

       When using "register" an id that can be used for later removal of the handler using "unregister" is
       returned.

   unimport/unregister
           no B::Hooks::OP::Check::EntersubForCV \&code;

           # or
           B::Hooks::OP::Check::EntersubForCV::unregister($id);

       Stop calling the registered handler for "code" for all entersubs after this.

See Also

       B::Hooks::OP::Check

Synopsis

FromPerl
           sub foo {}

           use B::Hooks::OP::Check::EntersubForCV
               \&foo => sub { warn "entersub for foo() being compiled" };

           foo(); # callback is invoked when this like is compiled

           no B::Hooks::OP::Check::EntersubForCV \&foo;

           foo(); # callback isn't invoked

   FromC/XS
           #include "hook_op_check_entersubforcv.h"

           STATIC OP *
           my_callback (pTHX_ OP *op, CV *cv, void *user_data) {
               /* ... */
               return op;
           }

           hook_op_check_id id;

           /* register callback */
           id = hook_op_check_entersubforcv (cv, my_callback, NULL);

           /* unregister */
           hook_op_check_entersubforcv_remove (id);

See Also