While this probably never overflows, we are better safe than sorry. The callback prototype should probably also use ptrdiff_t or size_t, but I diggress (this would affect the DSP callback prototype).
Unified · Split
| @@ -31,12 +31,12 @@ · 30 unmodified lines | |||
| 31 | static void vorbis_inverse_coupling_altivec(float *mag, float *ang, | 31 | static void vorbis_inverse_coupling_altivec(float *mag, float *ang, |
| 32 | intptr_t blocksize) | 32 | intptr_t blocksize) |
| 33 | { | 33 | { |
| 34 | int i; | ||
| 35 | vector float m, a; | 34 | vector float m, a; |
| 36 | vector bool int t0, t1; | 35 | vector bool int t0, t1; |
| 37 | const vector unsigned int v_31 = //XXX | 36 | const vector unsigned int v_31 = //XXX |
| 38 | vec_add(vec_add(vec_splat_u32(15),vec_splat_u32(15)),vec_splat_u32(1)); | 37 | vec_add(vec_add(vec_splat_u32(15),vec_splat_u32(15)),vec_splat_u32(1)); |
| 39 | for (i = 0; i < blocksize; i += 4) { | 38 | |
| 39 | for (ptrdiff_t i = 0; i < blocksize; i += 4) { | ||
| 40 | m = vec_ld(0, mag+i); | 40 | m = vec_ld(0, mag+i); |
| 41 | a = vec_ld(0, ang+i); | 41 | a = vec_ld(0, ang+i); |
| 42 | t0 = vec_cmple(m, (vector float)vec_splat_u32(0)); | 42 | t0 = vec_cmple(m, (vector float)vec_splat_u32(0)); |
| @@ -1581,8 +1581,7 @@ static inline int vorbis_residue_decode(vorbis_context *vc, vorbis_residue *vr, · 1580 unmodified lines | |||
| 1581 | 1581 | ||
| 1582 | void ff_vorbis_inverse_coupling(float *mag, float *ang, intptr_t blocksize) | 1582 | void ff_vorbis_inverse_coupling(float *mag, float *ang, intptr_t blocksize) |
| 1583 | { | 1583 | { |
| 1584 | int i; | 1584 | for (ptrdiff_t i = 0; i < blocksize; i++) { |
| 1585 | for (i = 0; i < blocksize; i++) { | ||
| 1586 | if (mag[i] > 0.0) { | 1585 | if (mag[i] > 0.0) { |
| 1587 | if (ang[i] > 0.0) { | 1586 | if (ang[i] > 0.0) { |
| 1588 | ang[i] = mag[i] - ang[i]; | 1587 | ang[i] = mag[i] - ang[i]; |