From: Matt S Trout Date: Sat, 18 Oct 2008 09:06:13 +0000 (+0000) Subject: switch done_declare from call_argv to call_pv X-Git-Tag: 0.005000~67 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=001d53d04e7a5f43c966f37f3a1733f3a110081f;p=p5sagit%2FDevel-Declare.git switch done_declare from call_argv to call_pv --- 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);