--- EV-ADNS/ADNS.xs 2007/12/01 15:30:08 1.4 +++ EV-ADNS/ADNS.xs 2007/12/01 15:54:40 1.5 @@ -40,12 +40,13 @@ c->cb = 0; ev_unref (); + PUSHMARK (SP); + + XPUSHs (sv_2mortal (newSViv (a->status))); free (a); - PUSHMARK (SP); - printf ("call %s\n", SvPV_nolen(cb)); PUTBACK; - call_sv (cb, G_VOID | G_DISCARD); + call_sv (cb, G_VOID | G_DISCARD | G_EVAL); SPAGAIN; SvREFCNT_dec (cb); @@ -251,7 +252,7 @@ if (GIMME_V != G_VOID) { - csv = sv_2mortal (newRV_noinc (csv)); + csv = sv_2mortal (newRV_inc (csv)); sv_bless (csv, stash); XPUSHs (csv); }