[windows] - fixups for building on windows
[deb_shairplay.git] / src / lib / raop_buffer.c
index b9b52afa2feb6929368933bd8d4a6833f6c0e129..37bfa79dab86ac3352c7e8faf7fa1491c40ab46e 100644 (file)
@@ -72,20 +72,21 @@ static int
 get_fmtp_info(ALACSpecificConfig *config, const char *fmtp)
 {
        int intarr[12];
+       char *original;
        char *strptr;
        int i;
 
        /* Parse fmtp string to integers */
-       strptr = strdup(fmtp);
+       original = strptr = strdup(fmtp);
        for (i=0; i<12; i++) {
                if (strptr == NULL) {
-                       free(strptr);
+                       free(original);
                        return -1;
                }
                intarr[i] = atoi(utils_strsep(&strptr, " "));
        }
-       free(strptr);
-       strptr = NULL;
+       free(original);
+       original = strptr = NULL;
 
        /* Fill the config struct */
        config->frameLength = intarr[1];
@@ -185,7 +186,7 @@ raop_buffer_init(const char *fmtp,
                raop_buffer_entry_t *entry = &raop_buffer->entries[i];
                entry->audio_buffer_size = audio_buffer_size;
                entry->audio_buffer_len = 0;
-               entry->audio_buffer = raop_buffer->buffer+i*audio_buffer_size;
+               entry->audio_buffer = (char *)raop_buffer->buffer+i*audio_buffer_size;
        }
 
        /* Initialize ALAC decoder */
@@ -211,8 +212,8 @@ void
 raop_buffer_destroy(raop_buffer_t *raop_buffer)
 {
        if (raop_buffer) {
+               destroy_alac(raop_buffer->alac);
                free(raop_buffer->buffer);
-               free(raop_buffer->alac);
                free(raop_buffer);
        }
 }