Merge branch 'keyword-rewrite' into keyword-rewrite-magic
[p5sagit/Function-Parameters.git] / Parameters.xs
index b43a9d4..f618a60 100644 (file)
@@ -329,6 +329,27 @@ static int my_keyword_plugin(pTHX_ char *keyword_ptr, STRLEN keyword_len, OP **o
        return ret;
 }
 
+static int magic_free(pTHX_ SV *sv, MAGIC *mg) {
+       lex_stuff_pvn("}", 1, 0);
+       /* fprintf(stderr, "!~ [%.*s]\n", (int)(PL_bufend - PL_bufptr), PL_bufptr); */
+       return 0;
+}
+
+static int magic_nop(pTHX_ SV *sv, MAGIC *mg) {
+       return 0;
+}
+
+static MGVTBL my_vtbl = {
+       0,           /* get   */
+       0,           /* set   */
+       0,           /* len   */
+       0,           /* clear */
+       magic_free,  /* free  */
+       0,           /* copy  */
+       0,           /* dup   */
+       magic_nop    /* local */
+};
+
 WARNINGS_RESET
 
 MODULE = Function::Parameters   PACKAGE = Function::Parameters
@@ -349,7 +370,6 @@ WARNINGS_ENABLE {
 } WARNINGS_RESET
 
 void
-xs_fini()
+_fini()
        CODE:
-       lex_stuff_pvn("}", 1, 0);
-       /* fprintf(stderr, "!~ [%.*s]\n", (int)(PL_bufend - PL_bufptr), PL_bufptr); */
+       sv_magicext((SV *)GvHV(PL_hintgv), NULL, PERL_MAGIC_ext, &my_vtbl, NULL, 0);