From: matthewt Date: Sat, 18 Oct 2008 09:06:13 +0000 (+0000) Subject: switch done_declare from call_argv to call_pv X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=56d10bc7e1fc59911ff3b291d49548674f93268b;p=p5sagit%2FDevel-Declare.git switch done_declare from call_argv to call_pv git-svn-id: http://dev.catalyst.perl.org/repos/bast/Devel-Declare/1.000/trunk@4932 bd8105ee-0ff8-0310-8827-fb3f25b6796d --- diff --git a/Changes b/Changes index 6e1e539..8dc67d8 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,7 @@ Changes for Devel-Declare + - switch done_declare call from call_argv to call_pv + 0.002001 - clean up checks for whether we're lexing and whether lex_stuff exists to handle the PL_parser factor-out in 5.10 diff --git a/Declare.xs b/Declare.xs index 7f383a8..db84e25 100644 --- a/Declare.xs +++ b/Declare.xs @@ -194,12 +194,10 @@ STATIC OP *(*dd_old_ck_rv2cv)(pTHX_ OP *op); STATIC OP *dd_ck_rv2cv(pTHX_ OP *o) { OP* kid; int dd_flags; - char* cb_args[6]; o = dd_old_ck_rv2cv(aTHX_ o); /* let the original do its job */ if (in_declare) { - cb_args[0] = NULL; if (dd_debug) { printf("Deconstructing declare\n"); printf("PL_bufptr: %s\n", PL_bufptr); @@ -207,7 +205,19 @@ STATIC OP *dd_ck_rv2cv(pTHX_ OP *o) { printf("linestr: %s\n", SvPVX(PL_linestr)); printf("linestr len: %i\n", PL_bufend - SvPVX(PL_linestr)); } - call_argv("Devel::Declare::done_declare", G_VOID|G_DISCARD, cb_args); + + dSP; + + ENTER; + SAVETMPS; + + PUSHMARK(SP); + + call_pv("Devel::Declare::done_declare", G_VOID|G_DISCARD); + + FREETMPS; + LEAVE; + if (dd_debug) { printf("PL_bufptr: %s\n", PL_bufptr); printf("bufend at: %i\n", PL_bufend - PL_bufptr);