count = call_sv((SV*)cv, flags);
if (status == OK) { count = call_sv((SV*)cv, flags);
int modperl_callback(pTHX_ modperl_handler_t *handler, apr_pool_t *p,                     request_rec *r, server_rec *s, AV *args){    CV *cv=Nullcv;    I32 flags = G_EVAL|G_SCALAR;    dSP;    int count, status;    if ((status = modperl_handler_resolve(aTHX_ &handler, p, s)) != OK) {        return status;    }    ENTER;SAVETMPS;    PUSHMARK(SP);    if (MpHandlerMETHOD(handler)) {        GV *gv;        if (!handler->mgv_obj) {            Perl_croak(aTHX_ "panic: %s method handler object is NULL!",                       handler->name);        }        gv = modperl_mgv_lookup(aTHX_ handler->mgv_obj);        XPUSHs(modperl_mgv_sv(gv));    }    if (args) {        I32 items = AvFILLp(args) + 1;        EXTEND(SP, items);        Copy(AvARRAY(args), SP + 1, items, SV*);        SP += items;    }    PUTBACK;    if (MpHandlerANON(handler)) {        SV *sv = eval_pv(handler->name, TRUE); /* XXX: cache */        cv = (CV*)SvRV(sv);    }    else {        GV *gv = modperl_mgv_lookup_autoload(aTHX_ handler->mgv_cv, s, p);        if (gv) {            cv = modperl_mgv_cv(gv);        }        else {            char *name = modperl_mgv_as_string(aTHX_ handler->mgv_cv, p, 0);            MP_TRACE_h(MP_FUNC, "lookup of %s failed\n", name);        }    }    count = call_sv((SV*)cv, flags);    SPAGAIN;    if (count != 1) {        status = OK;    }    else {        status = POPi;        /* assume OK for non-http status codes and for 200 (HTTP_OK) */        if (((status > 0) && (status < 100)) ||            (status == 200) || (status > 600)) {            status = OK;        }    }    PUTBACK;    FREETMPS;LEAVE;    if (SvTRUE(ERRSV)) {        MP_TRACE_h(MP_FUNC, "$@ = %s", SvPVX(ERRSV));        status = HTTP_INTERNAL_SERVER_ERROR;    }    return status;}