ap_cpystrn(class, name, class_len+1);
apr_cpystrn(class, name, class_len+1);
int modperl_handler_parse(pTHX_ modperl_handler_t *handler){    char *name = handler->name;    char *tmp;    CV *cv;#ifdef USE_ITHREADS    handler->perl = aTHX;#endif    if (strnEQ(name, "sub ", 4)) {        handler->cv = eval_pv(name, FALSE);        MP_TRACE_h(MP_FUNC, "handler is anonymous\n");        if (!SvTRUE(handler->cv) || SvTRUE(ERRSV)) {            MP_TRACE_h(MP_FUNC, "eval failed: %s\n", SvPVX(ERRSV));            handler->cv = Nullsv;            return 0;        }        SvREFCNT_inc(handler->cv);        MpHandlerANON_On(handler);        MpHandlerPARSED_On(handler);        return 1;    }        if ((tmp = strstr(name, "->"))) {        char class[256]; /*XXX*/        int class_len = strlen(name) - strlen(tmp);        ap_cpystrn(class, name, class_len+1);        MpHandlerMETHOD_On(handler);        handler->cv = newSVpv(&tmp[2], 0);        if (*class == '$') {            SV *obj = eval_pv(class, FALSE);            if (SvTRUE(obj)) {                handler->obj = SvREFCNT_inc(obj);                if (SvROK(obj) && sv_isobject(obj)) {                    MpHandlerOBJECT_On(handler);                    MP_TRACE_h(MP_FUNC, "handler object %s isa %s\n",                               class, HvNAME(SvSTASH((SV*)SvRV(obj))));                }                else {                    MP_TRACE_h(MP_FUNC, "%s is not an object, pv=%s\n",                               class, SvPV_nolen(obj));                }            }            else {                MP_TRACE_h(MP_FUNC, "failed to thaw %s\n", class);                return 0;            }        }        if (!handler->obj) {            handler->obj = newSVpv(class, class_len);            MP_TRACE_h(MP_FUNC, "handler method %s isa %s\n",                       SvPVX(handler->cv), class);        }        MpHandlerPARSED_On(handler);        return 1;    }    if ((cv = get_cv(name, FALSE))) {        modperl_handler_cache_cv(aTHX_ handler, cv);        MpHandlerPARSED_On(handler);        return 1;    }    if (modperl_handler_lookup(aTHX_ handler, name, "handler")) {        return 1;    }    return 0;}