Segher wrote:>
>> > >    0x805e2cc <calc_xmin+460>:    fldl   0xfffffff0(%ebp)
>
>It loads from stack, offset -0x10; so it's a local variable.
>
>> -->   for ( sfb = 0; sfb < cod_info->sfb_lmax; sfb++ ){
>
>Don't think so, no floats involved here.

yes, it is debugger's (and compiler's optimization) sake :).

I checked related variables in calc_xmin with gdb when ABORTFP happens.
and I found all of (scalefac_band.l) and (scalefac_band.s) are zero.

and the next loop

        for (en0 = 0.0, l = start; l < end; l++ ) {

is skipped and LAME do a next calculation

        en0 /= bw;
and
        start = scalefac_band.l[ sfb ];
        end   = scalefac_band.l[ sfb+1 ];
        bw = end - start;

so bw is zero, and LAME do a "divide by zero"

but I haven't find out where scalefac_band is cleared.
--- 
Takehiro TOMINAGA // may the source be with you!
--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )

Reply via email to