History

lavc/vorbisdec: use ptrdiff_t to iterate over intptr_t

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).

Rémi Denis-Courmont committed 4 years ago

Commit bbf045a1 parent 129cbbd2 files · +3 −4Browse files

Unified · Split

2 files
  1. libavcodec/ppc/vorbisdsp_altivec.c +2 −2
  2. libavcodec/vorbisdec.c +1 −2
libavcodec/ppc/vorbisdsp_altivec.c+2−2
@@ -31,12 +31,12 @@ · 30 unmodified lines
31static void vorbis_inverse_coupling_altivec(float *mag, float *ang,31static 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 = //XXX36 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));
libavcodec/vorbisdec.c+1−2
@@ -1581,8 +1581,7 @@ static inline int vorbis_residue_decode(vorbis_context *vc, vorbis_residue *vr, · 1580 unmodified lines
1581 1581
1582void ff_vorbis_inverse_coupling(float *mag, float *ang, intptr_t blocksize)1582void 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];

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t