]> git.vpit.fr Git - perl/modules/Sub-Op.git/blobdiff - lib/Sub/Op.pm
Add sub_op_init(), sub_op_dup() and sub_op_free() to the API
[perl/modules/Sub-Op.git] / lib / Sub / Op.pm
index 8b7325658143c7f5ac1763b84c11c8a5649ea813..cf67eac9e5317a8f7f984798d8fb3cbb134ca3e6 100644 (file)
@@ -50,6 +50,7 @@ In your XS file :
     BOOT:
     {
      sub_op_config_t c;
+     sub_op_init(&c);
      c.name    = "reftype";
      c.namelen = sizeof("reftype")-1;
      c.pp      = scalar_util_reftype;
@@ -246,12 +247,26 @@ An optional user data passed to the C<check> callback.
 
 =back
 
+=head2 C<void sub_op_init(sub_op_config_t *c)>
+
+Initializes the fields of the C<sub_op_config_t> 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<void sub_op_register(pTHX_ const sub_op_config_t *c)>
 
 Registers a name and its configuration into L<Sub::Op>.
 The caller is responsible for allocating and freeing the C<sub_op_config_t> object.
 No pointer to it or to its members is kept.
 
+=head2 C<sub_op_config_t *sub_op_dup(pTHX_ const sub_op_config_t *orig)>
+
+Deeply clones the specified C<sub_op_config_t> object.
+
+=head2 C<void sub_op_free(pTHX_ sub_op_config_t *c)>
+
+Free the memory associated with the specified C<sub_op_config_t> object.
+
 =head1 PERL API
 
 =head2 C<enable $name, [ $pkg ]>