--- rxvt-unicode/src/rxvtperl.xs 2013/02/16 17:26:53 1.213 +++ rxvt-unicode/src/rxvtperl.xs 2013/03/01 09:33:51 1.214 @@ -2399,20 +2399,18 @@ if (SvOK (params)) { - // we overlay rxvt_temp_buf, what a hack - assert (sizeof (rxvt_img::nv) >= sizeof (int)); - if (!SvROK (params) || SvTYPE (SvRV (params)) != SVt_PVAV) croak ("rxvt_img::filter: params must be an array reference with parameter values"); nparams = av_len ((AV *)SvRV (params)) + 1; - vparams = rxvt_temp_buf (nparams); + vparams = (rxvt_img::nv *)malloc (nparams * sizeof (rxvt_img::nv)); for (int i = 0; i < nparams; ++i) vparams [i] = SvNV (*av_fetch ((AV *)SvRV (params), i, 1)); } RETVAL = THIS->filter (name, nparams, vparams); + free (vparams); OUTPUT: RETVAL