Commit a350e694245c1ce9492c67db83e1fd325e767769
1 parent
58565070
Avoid arithmetics on void * in MusicPal audio code (Jan Kiszka).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4373 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
8 additions
and
8 deletions
hw/musicpal.c
| ... | ... | @@ -244,7 +244,7 @@ typedef struct musicpal_audio_state { |
| 244 | 244 | uint32_t status; |
| 245 | 245 | uint32_t irq_enable; |
| 246 | 246 | unsigned long phys_buf; |
| 247 | - void *target_buffer; | |
| 247 | + int8_t *target_buffer; | |
| 248 | 248 | unsigned int threshold; |
| 249 | 249 | unsigned int play_pos; |
| 250 | 250 | unsigned int last_free; |
| ... | ... | @@ -256,7 +256,7 @@ static void audio_callback(void *opaque, int free_out, int free_in) |
| 256 | 256 | { |
| 257 | 257 | musicpal_audio_state *s = opaque; |
| 258 | 258 | int16_t *codec_buffer; |
| 259 | - void *mem_buffer; | |
| 259 | + int8_t *mem_buffer; | |
| 260 | 260 | int pos, block_size; |
| 261 | 261 | |
| 262 | 262 | if (!(s->playback_mode & MP_AUDIO_PLAYBACK_EN)) |
| ... | ... | @@ -277,8 +277,8 @@ static void audio_callback(void *opaque, int free_out, int free_in) |
| 277 | 277 | if (s->playback_mode & MP_AUDIO_MONO) { |
| 278 | 278 | codec_buffer = wm8750_dac_buffer(s->wm, block_size >> 1); |
| 279 | 279 | for (pos = 0; pos < block_size; pos += 2) { |
| 280 | - *codec_buffer++ = *(uint16_t *)mem_buffer; | |
| 281 | - *codec_buffer++ = *(uint16_t *)mem_buffer; | |
| 280 | + *codec_buffer++ = *(int16_t *)mem_buffer; | |
| 281 | + *codec_buffer++ = *(int16_t *)mem_buffer; | |
| 282 | 282 | mem_buffer += 2; |
| 283 | 283 | } |
| 284 | 284 | } else |
| ... | ... | @@ -288,14 +288,14 @@ static void audio_callback(void *opaque, int free_out, int free_in) |
| 288 | 288 | if (s->playback_mode & MP_AUDIO_MONO) { |
| 289 | 289 | codec_buffer = wm8750_dac_buffer(s->wm, block_size); |
| 290 | 290 | for (pos = 0; pos < block_size; pos++) { |
| 291 | - *codec_buffer++ = cpu_to_le16(256 * *(int8_t *)mem_buffer); | |
| 292 | - *codec_buffer++ = cpu_to_le16(256 * *(int8_t *)mem_buffer++); | |
| 291 | + *codec_buffer++ = cpu_to_le16(256 * *mem_buffer); | |
| 292 | + *codec_buffer++ = cpu_to_le16(256 * *mem_buffer++); | |
| 293 | 293 | } |
| 294 | 294 | } else { |
| 295 | 295 | codec_buffer = wm8750_dac_buffer(s->wm, block_size >> 1); |
| 296 | 296 | for (pos = 0; pos < block_size; pos += 2) { |
| 297 | - *codec_buffer++ = cpu_to_le16(256 * *(int8_t *)mem_buffer++); | |
| 298 | - *codec_buffer++ = cpu_to_le16(256 * *(int8_t *)mem_buffer++); | |
| 297 | + *codec_buffer++ = cpu_to_le16(256 * *mem_buffer++); | |
| 298 | + *codec_buffer++ = cpu_to_le16(256 * *mem_buffer++); | |
| 299 | 299 | } |
| 300 | 300 | } |
| 301 | 301 | } | ... | ... |