@@ -39,6 +39,8 @@ static const unsigned int mask8B[]=
3939void oggpack_writeinit (oggpack_buffer * b ){
4040 memset (b ,0 ,sizeof (* b ));
4141 b -> ptr = b -> buffer = _ogg_malloc (BUFFER_INCREMENT );
42+ if (!b -> buffer )
43+ return ;
4244 b -> buffer [0 ]= '\0' ;
4345 b -> storage = BUFFER_INCREMENT ;
4446}
@@ -284,13 +286,13 @@ long oggpack_look(oggpack_buffer *b,int bits){
284286
285287 ret = b -> ptr [0 ]>>b -> endbit ;
286288 if (bits > 8 ){
287- ret |=b -> ptr [1 ]<<(8 - b -> endbit );
289+ ret |=( unsigned long ) b -> ptr [1 ]<<(8 - b -> endbit );
288290 if (bits > 16 ){
289- ret |=b -> ptr [2 ]<<(16 - b -> endbit );
291+ ret |=( unsigned long ) b -> ptr [2 ]<<(16 - b -> endbit );
290292 if (bits > 24 ){
291- ret |=b -> ptr [3 ]<<(24 - b -> endbit );
293+ ret |=( unsigned long ) b -> ptr [3 ]<<(24 - b -> endbit );
292294 if (bits > 32 && b -> endbit )
293- ret |=b -> ptr [4 ]<<(32 - b -> endbit );
295+ ret |=( unsigned long ) b -> ptr [4 ]<<(32 - b -> endbit );
294296 }
295297 }
296298 }
@@ -313,13 +315,13 @@ long oggpackB_look(oggpack_buffer *b,int bits){
313315 else if (!bits )return (0L );
314316 }
315317
316- ret = b -> ptr [0 ]<<(24 + b -> endbit );
318+ ret = ( unsigned long ) b -> ptr [0 ]<<(24 + b -> endbit );
317319 if (bits > 8 ){
318- ret |=b -> ptr [1 ]<<(16 + b -> endbit );
320+ ret |=( unsigned long ) b -> ptr [1 ]<<(16 + b -> endbit );
319321 if (bits > 16 ){
320- ret |=b -> ptr [2 ]<<(8 + b -> endbit );
322+ ret |=( unsigned long ) b -> ptr [2 ]<<(8 + b -> endbit );
321323 if (bits > 24 ){
322- ret |=b -> ptr [3 ]<<(b -> endbit );
324+ ret |=( unsigned long ) b -> ptr [3 ]<<(b -> endbit );
323325 if (bits > 32 && b -> endbit )
324326 ret |=b -> ptr [4 ]>>(8 - b -> endbit );
325327 }
@@ -389,13 +391,13 @@ long oggpack_read(oggpack_buffer *b,int bits){
389391
390392 ret = b -> ptr [0 ]>>b -> endbit ;
391393 if (bits > 8 ){
392- ret |=b -> ptr [1 ]<<(8 - b -> endbit );
394+ ret |=( unsigned long ) b -> ptr [1 ]<<(8 - b -> endbit );
393395 if (bits > 16 ){
394- ret |=b -> ptr [2 ]<<(16 - b -> endbit );
396+ ret |=( unsigned long ) b -> ptr [2 ]<<(16 - b -> endbit );
395397 if (bits > 24 ){
396- ret |=b -> ptr [3 ]<<(24 - b -> endbit );
398+ ret |=( unsigned long ) b -> ptr [3 ]<<(24 - b -> endbit );
397399 if (bits > 32 && b -> endbit ){
398- ret |=b -> ptr [4 ]<<(32 - b -> endbit );
400+ ret |=( unsigned long ) b -> ptr [4 ]<<(32 - b -> endbit );
399401 }
400402 }
401403 }
@@ -430,13 +432,13 @@ long oggpackB_read(oggpack_buffer *b,int bits){
430432 else if (!bits )return (0L );
431433 }
432434
433- ret = b -> ptr [0 ]<<(24 + b -> endbit );
435+ ret = ( unsigned long ) b -> ptr [0 ]<<(24 + b -> endbit );
434436 if (bits > 8 ){
435- ret |=b -> ptr [1 ]<<(16 + b -> endbit );
437+ ret |=( unsigned long ) b -> ptr [1 ]<<(16 + b -> endbit );
436438 if (bits > 16 ){
437- ret |=b -> ptr [2 ]<<(8 + b -> endbit );
439+ ret |=( unsigned long ) b -> ptr [2 ]<<(8 + b -> endbit );
438440 if (bits > 24 ){
439- ret |=b -> ptr [3 ]<<(b -> endbit );
441+ ret |=( unsigned long ) b -> ptr [3 ]<<(b -> endbit );
440442 if (bits > 32 && b -> endbit )
441443 ret |=b -> ptr [4 ]>>(8 - b -> endbit );
442444 }
@@ -565,17 +567,17 @@ void cliptest(unsigned long *b,int vals,int bits,int *comp,int compsize){
565567 int tbit = bits ?bits :ilog (b [i ]);
566568 if (oggpack_look (& r ,tbit )== -1 )
567569 report ("out of data!\n" );
568- if (oggpack_look (& r ,tbit )!= (b [i ]& mask [tbit ]))
570+ if (( unsigned long ) oggpack_look (& r ,tbit )!= (b [i ]& mask [tbit ]))
569571 report ("looked at incorrect value!\n" );
570572 if (tbit == 1 )
571- if (oggpack_look1 (& r )!= (b [i ]& mask [tbit ]))
573+ if (( unsigned long ) oggpack_look1 (& r )!= (b [i ]& mask [tbit ]))
572574 report ("looked at single bit incorrect value!\n" );
573575 if (tbit == 1 ){
574- if (oggpack_read1 (& r )!= (b [i ]& mask [tbit ]))
576+ if (( unsigned long ) oggpack_read1 (& r )!= (b [i ]& mask [tbit ]))
575577 report ("read incorrect single bit value!\n" );
576578 }else {
577- if (oggpack_read (& r ,tbit )!= (b [i ]& mask [tbit ]))
578- report ("read incorrect value!\n" );
579+ if (( unsigned long ) oggpack_read (& r ,tbit )!= (b [i ]& mask [tbit ]))
580+ report ("read incorrect value!\n" );
579581 }
580582 }
581583 if (oggpack_bytes (& r )!= bytes )report ("leftover bytes after read!\n" );
@@ -600,16 +602,16 @@ void cliptestB(unsigned long *b,int vals,int bits,int *comp,int compsize){
600602 int tbit = bits ?bits :ilog (b [i ]);
601603 if (oggpackB_look (& r ,tbit )== -1 )
602604 report ("out of data!\n" );
603- if (oggpackB_look (& r ,tbit )!= (b [i ]& mask [tbit ]))
605+ if (( unsigned long ) oggpackB_look (& r ,tbit )!= (b [i ]& mask [tbit ]))
604606 report ("looked at incorrect value!\n" );
605607 if (tbit == 1 )
606- if (oggpackB_look1 (& r )!= (b [i ]& mask [tbit ]))
608+ if (( unsigned long ) oggpackB_look1 (& r )!= (b [i ]& mask [tbit ]))
607609 report ("looked at single bit incorrect value!\n" );
608610 if (tbit == 1 ){
609- if (oggpackB_read1 (& r )!= (b [i ]& mask [tbit ]))
611+ if (( unsigned long ) oggpackB_read1 (& r )!= (b [i ]& mask [tbit ]))
610612 report ("read incorrect single bit value!\n" );
611613 }else {
612- if (oggpackB_read (& r ,tbit )!= (b [i ]& mask [tbit ]))
614+ if (( unsigned long ) oggpackB_read (& r ,tbit )!= (b [i ]& mask [tbit ]))
613615 report ("read incorrect value!\n" );
614616 }
615617 }
@@ -888,7 +890,7 @@ int main(void){
888890 oggpack_readinit (& r ,buffer ,bytes );
889891 for (i = 0 ;i < test2size ;i ++ ){
890892 if (oggpack_look (& r ,32 )== -1 )report ("out of data. failed!" );
891- if (oggpack_look (& r ,32 )!= large [i ]){
893+ if (( unsigned long ) oggpack_look (& r ,32 )!= large [i ]){
892894 fprintf (stderr ,"%ld != %lu (%lx!=%lx):" ,oggpack_look (& r ,32 ),large [i ],
893895 oggpack_look (& r ,32 ),large [i ]);
894896 report ("read incorrect value!\n" );
@@ -998,7 +1000,7 @@ int main(void){
9981000 oggpackB_readinit (& r ,buffer ,bytes );
9991001 for (i = 0 ;i < test2size ;i ++ ){
10001002 if (oggpackB_look (& r ,32 )== -1 )report ("out of data. failed!" );
1001- if (oggpackB_look (& r ,32 )!= large [i ]){
1003+ if (( unsigned long ) oggpackB_look (& r ,32 )!= large [i ]){
10021004 fprintf (stderr ,"%ld != %lu (%lx!=%lx):" ,oggpackB_look (& r ,32 ),large [i ],
10031005 oggpackB_look (& r ,32 ),large [i ]);
10041006 report ("read incorrect value!\n" );
0 commit comments