]> git.vpit.fr Git - perl/modules/Sub-Op.git/blobdiff - t/Sub-Op-LexicalSub/LexicalSub.xs
Add support for prototypes
[perl/modules/Sub-Op.git] / t / Sub-Op-LexicalSub / LexicalSub.xs
index a4d2d8e6cc2ccbc19b56f70005434b4893cacabc..a60fa20044543763071f453e405460a38f0e588d 100644 (file)
@@ -62,11 +62,15 @@ PPCODE:
  if (SvROK(cb)) {
   cb = SvRV(cb);
   if (SvTYPE(cb) >= SVt_PVCV) {
-   c.name  = SvPV_const(name, c.namelen);
-   c.check = sols_check;
-   c.ud    = SvREFCNT_inc(cb);
-   c.pp    = sols_pp;
-   sub_op_register(aTHX_ &c);
+   sub_op_init(&c);
+   c.name   = SvPV_const(name, c.namelen);
+   if (SvPOK(cb)) { /* Sub is prototyped */
+    c.proto = SvPV_const(cb, c.protolen);
+   }
+   c.check  = sols_check;
+   c.ud     = SvREFCNT_inc(cb);
+   c.pp     = sols_pp;
+   sub_op_register(aTHX_ &c, 0);
   }
  }
  XSRETURN(0);