Commit 0c46dd68 authored by Max Kellermann's avatar Max Kellermann Committed by Eric Wong

don't use short chunk numbers

Don't be mean with integer sizes. Although we will probably never have more than 32k buffered chunks, we should use 32 bit integers for addressing them. We do not save very much (some of the saved space is eaten by alignment anyway), but we save at least one assembler instruction for converting short to int. This change requires some more explicit casts, because gcc was less picky when comparing short with a full int. git-svn-id: https://svn.musicpd.org/mpd/trunk@7313 09075e82-0dd4-0310-85a5-a0d7c8717e4f
parent 20c4638a
...@@ -518,7 +518,7 @@ static void decodeParent(PlayerControl * pc, DecoderControl * dc, OutputBuffer * ...@@ -518,7 +518,7 @@ static void decodeParent(PlayerControl * pc, DecoderControl * dc, OutputBuffer *
if (do_pause) if (do_pause)
player_sleep(); player_sleep();
else if (!outputBufferEmpty(cb) && cb->begin != next) { else if (!outputBufferEmpty(cb) && (int)cb->begin != next) {
OutputBufferChunk *beginChunk = OutputBufferChunk *beginChunk =
outputBufferGetChunk(cb, cb->begin); outputBufferGetChunk(cb, cb->begin);
unsigned int fadePosition; unsigned int fadePosition;
...@@ -564,7 +564,7 @@ static void decodeParent(PlayerControl * pc, DecoderControl * dc, OutputBuffer * ...@@ -564,7 +564,7 @@ static void decodeParent(PlayerControl * pc, DecoderControl * dc, OutputBuffer *
break; break;
outputBufferShift(cb); outputBufferShift(cb);
player_wakeup_decoder_nb(); player_wakeup_decoder_nb();
} else if (!outputBufferEmpty(cb) && cb->begin == next) { } else if (!outputBufferEmpty(cb) && (int)cb->begin == next) {
/* at the beginning of a new song */ /* at the beginning of a new song */
if (doCrossFade == 1 && nextChunk >= 0) { if (doCrossFade == 1 && nextChunk >= 0) {
......
...@@ -53,7 +53,7 @@ static inline unsigned successor(const OutputBuffer * cb, unsigned i) ...@@ -53,7 +53,7 @@ static inline unsigned successor(const OutputBuffer * cb, unsigned i)
void flushOutputBuffer(OutputBuffer * cb) void flushOutputBuffer(OutputBuffer * cb)
{ {
if (cb->currentChunk == cb->end) { if (cb->currentChunk == (int)cb->end) {
cb->end = successor(cb, cb->end); cb->end = successor(cb, cb->end);
cb->currentChunk = -1; cb->currentChunk = -1;
} }
...@@ -125,7 +125,7 @@ static int tailChunk(OutputBuffer * cb, InputStream * inStream, ...@@ -125,7 +125,7 @@ static int tailChunk(OutputBuffer * cb, InputStream * inStream,
unsigned int next; unsigned int next;
OutputBufferChunk *chunk; OutputBufferChunk *chunk;
if (cb->currentChunk == cb->end) if (cb->currentChunk == (int)cb->end)
return cb->currentChunk; return cb->currentChunk;
next = successor(cb, cb->end); next = successor(cb, cb->end);
......
...@@ -49,12 +49,12 @@ typedef struct _OutputBuffer { ...@@ -49,12 +49,12 @@ typedef struct _OutputBuffer {
unsigned int size; unsigned int size;
/** the index of the first decoded chunk */ /** the index of the first decoded chunk */
mpd_uint16 volatile begin; unsigned int volatile begin;
/** the index after the last decoded chunk */ /** the index after the last decoded chunk */
mpd_uint16 volatile end; unsigned int volatile end;
mpd_sint16 currentChunk; int currentChunk;
AudioFormat audioFormat; AudioFormat audioFormat;
ConvState convState; ConvState convState;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment