mozilla-bmo1446062.patch
author Wolfgang Rosenauer <wr@rosenauer.org>
Tue, 27 Mar 2018 08:29:31 +0200
branchfirefox59
changeset 1040 246b98b59979
permissions -rw-r--r--
added i586 patches
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1040
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     1
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     2
# HG changeset patch
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     3
# User Thomas Daede <daede003@umn.edu>
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     4
# Date 1521175629 25200
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     5
# Node ID 5cd5586a2f48424a9031a3fa4c782954a9df9a52
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     6
# Parent  494e5d5278ba6f5fdda9a2bb9ac7ca772653ee4a
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     7
Bug 1446062: libtremor Vorbis fix.  r=jmspeex  a=dveditz
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     8
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
     9
diff --git a/media/libtremor/lib/tremor_codebook.c b/media/libtremor/lib/tremor_codebook.c
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    10
--- a/media/libtremor/lib/tremor_codebook.c
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    11
+++ b/media/libtremor/lib/tremor_codebook.c
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    12
@@ -253,26 +253,26 @@ long vorbis_book_decodevs_add(codebook *
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    13
     
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    14
     if(shift>=0){
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    15
       for (i = 0; i < step; i++) {
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    16
 	entry[i]=decode_packed_entry_number(book,b);
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    17
 	if(entry[i]==-1)return(-1);
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    18
 	t[i] = book->valuelist+entry[i]*book->dim;
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    19
       }
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    20
       for(i=0,o=0;i<book->dim;i++,o+=step)
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    21
-	for (j=0;j<step;j++)
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    22
+	for (j=0;o+j<n && j<step;j++)
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    23
 	  a[o+j]+=t[j][i]>>shift;
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    24
     }else{
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    25
       for (i = 0; i < step; i++) {
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    26
 	entry[i]=decode_packed_entry_number(book,b);
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    27
 	if(entry[i]==-1)return(-1);
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    28
 	t[i] = book->valuelist+entry[i]*book->dim;
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    29
       }
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    30
       for(i=0,o=0;i<book->dim;i++,o+=step)
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    31
-	for (j=0;j<step;j++)
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    32
+	for (j=0;o+j<n && j<step;j++)
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    33
 	  a[o+j]+=t[j][i]<<-shift;
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    34
     }
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    35
   }
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    36
   return(0);
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    37
 }
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    38
 
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    39
 /* decode vector / dim granularity gaurding is done in the upper layer */
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    40
 long vorbis_book_decodev_add(codebook *book,ogg_int32_t *a,
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    41
@@ -282,25 +282,25 @@ long vorbis_book_decodev_add(codebook *b
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    42
     ogg_int32_t *t;
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    43
     int shift=point-book->binarypoint;
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    44
     
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    45
     if(shift>=0){
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    46
       for(i=0;i<n;){
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    47
 	entry = decode_packed_entry_number(book,b);
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    48
 	if(entry==-1)return(-1);
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    49
 	t     = book->valuelist+entry*book->dim;
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    50
-	for (j=0;j<book->dim;)
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    51
+	for (j=0;i<n && j<book->dim;)
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    52
 	  a[i++]+=t[j++]>>shift;
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    53
       }
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    54
     }else{
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    55
       for(i=0;i<n;){
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    56
 	entry = decode_packed_entry_number(book,b);
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    57
 	if(entry==-1)return(-1);
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    58
 	t     = book->valuelist+entry*book->dim;
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    59
-	for (j=0;j<book->dim;)
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    60
+	for (j=0;i<n && j<book->dim;)
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    61
 	  a[i++]+=t[j++]<<-shift;
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    62
       }
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    63
     }
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    64
   }
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    65
   return(0);
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    66
 }
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    67
 
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    68
 /* unlike the others, we guard against n not being an integer number
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    69
@@ -347,41 +347,41 @@ long vorbis_book_decodev_set(codebook *b
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    70
 /* decode vector / dim granularity gaurding is done in the upper layer */
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    71
 long vorbis_book_decodevv_add(codebook *book,ogg_int32_t **a,\
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    72
 			      long offset,int ch,
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    73
 			      oggpack_buffer *b,int n,int point){
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    74
   if(book->used_entries>0){
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    75
     long i,j,entry;
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    76
     int chptr=0;
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    77
     int shift=point-book->binarypoint;
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    78
-    
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    79
+    int m=offset+n;
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    80
     if(shift>=0){
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    81
       
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    82
-      for(i=offset;i<offset+n;){
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    83
+      for(i=offset;i<m;){
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    84
 	entry = decode_packed_entry_number(book,b);
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    85
 	if(entry==-1)return(-1);
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    86
 	{
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    87
 	  const ogg_int32_t *t = book->valuelist+entry*book->dim;
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    88
-	  for (j=0;j<book->dim;j++){
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    89
+	  for (j=0;i<m && j<book->dim;j++){
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    90
 	    a[chptr++][i]+=t[j]>>shift;
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    91
 	    if(chptr==ch){
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    92
 	      chptr=0;
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    93
 	      i++;
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    94
 	    }
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    95
 	  }
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    96
 	}
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    97
       }
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    98
     }else{
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
    99
       
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   100
-      for(i=offset;i<offset+n;){
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   101
+      for(i=offset;i<m;){
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   102
 	entry = decode_packed_entry_number(book,b);
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   103
 	if(entry==-1)return(-1);
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   104
 	{
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   105
 	  const ogg_int32_t *t = book->valuelist+entry*book->dim;
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   106
-	  for (j=0;j<book->dim;j++){
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   107
+	  for (j=0;i<m && j<book->dim;j++){
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   108
 	    a[chptr++][i]+=t[j]<<-shift;
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   109
 	    if(chptr==ch){
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   110
 	      chptr=0;
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   111
 	      i++;
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   112
 	    }
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   113
 	  }
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   114
 	}
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   115
       }
246b98b59979 added i586 patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff changeset
   116