X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FSub-Op.git;a=blobdiff_plain;f=lib%2FSub%2FOp.pm;fp=lib%2FSub%2FOp.pm;h=7e10b4eba475c3916a6e1685d43c8b6ddcea90f1;hp=c7b705de91d83b91b608ddade95ea24de38f9767;hb=d96bad52a8f49276e74bf1028960ff524433af1d;hpb=623a5f3a3bb3565b7b646cad7997bcd74a1fa67b diff --git a/lib/Sub/Op.pm b/lib/Sub/Op.pm index c7b705d..7e10b4e 100644 --- a/lib/Sub/Op.pm +++ b/lib/Sub/Op.pm @@ -275,27 +275,37 @@ An optional user data passed to the C and C callbacks. =back -=head2 C +=head2 C + + void sub_op_init(sub_op_config_t *c); Initializes the fields of the C object. For future compatibility, it is required to call this function with your config object before storing your actual values. It will store safe defaults for members you won't set. -=head2 C +=head2 C + + void sub_op_register(pTHX_ const sub_op_config_t *c, U32 flags); Registers a name and its configuration into L. The caller is responsible for allocating and freeing the C object. No pointer to it or to its members is kept, except if you pass the flag C in which case the configuration object will be stolen to be stored into L's internal datastructure. -=head2 C +=head2 C + + sub_op_config_t *sub_op_dup(pTHX_ const sub_op_config_t *orig); Deeply clones the specified C object. -=head2 C +=head2 C + + void sub_op_free(pTHX_ sub_op_config_t *c); Free the memory associated with the specified C object. -=head2 C +=head2 C + + OP *sub_op_study(OP *o, OP **last_arg_p, OP **rv2cv_p); Studies the subset of the optree based on C, expecting it to be an C or C op (the ones you get in the C and C callbacks). If the tree is well-formed, C<*last_arg_p> will be set to the last argument of the call, C<*rv2cv_p> to the C op that resolves the function name, and the C op will be returned. @@ -303,7 +313,10 @@ Otherwise, this function returns C. =head1 PERL API -=head2 C +=head2 C + + enable($name); + enable($name, $pkg); Enable the capture of function calls and references constructors to C<$name> in the C<$pkg> package in the current lexical scope. You must have registered an appropriate C configuration by calling the C function C in the XS section of your module. @@ -338,7 +351,10 @@ sub enable { return; } -=head2 C +=head2 C + + disable($name); + disable($name, $pkg); Disable the capture of function calls and reference constructors to C<$name> in the package C<$pkg>.