diff --git a/libretro-common/streams/chd_stream.c b/libretro-common/streams/chd_stream.c index a1599c9f96..1c569cf17b 100644 --- a/libretro-common/streams/chd_stream.c +++ b/libretro-common/streams/chd_stream.c @@ -87,7 +87,8 @@ chdstream_get_meta(chd_file *chd, int idx, metadata_t *md) memset(md, 0, sizeof(*md)); err = chd_get_metadata(chd, CDROM_TRACK_METADATA2_TAG, idx, meta, - sizeof(meta), &meta_size, NULL, NULL); + sizeof(meta), &meta_size, NULL, NULL); + if (err == CHDERR_NONE) { sscanf(meta, CDROM_TRACK_METADATA2_FORMAT, @@ -100,7 +101,8 @@ chdstream_get_meta(chd_file *chd, int idx, metadata_t *md) } err = chd_get_metadata(chd, CDROM_TRACK_METADATA_TAG, idx, meta, - sizeof(meta), &meta_size, NULL, NULL); + sizeof(meta), &meta_size, NULL, NULL); + if (err == CHDERR_NONE) { sscanf(meta, CDROM_TRACK_METADATA_FORMAT, &md->track, md->type, @@ -110,7 +112,8 @@ chdstream_get_meta(chd_file *chd, int idx, metadata_t *md) } err = chd_get_metadata(chd, GDROM_TRACK_METADATA_TAG, idx, meta, - sizeof(meta), &meta_size, NULL, NULL); + sizeof(meta), &meta_size, NULL, NULL); + if (err == CHDERR_NONE) { sscanf(meta, GDROM_TRACK_METADATA_FORMAT, &md->track, md->type, @@ -132,9 +135,7 @@ chdstream_find_track_number(chd_file *fd, int32_t track, metadata_t *meta) for (i = 0; true; ++i) { if (!chdstream_get_meta(fd, i, meta)) - { return false; - } if (track == meta->track) { @@ -156,24 +157,29 @@ chdstream_find_special_track(chd_file *fd, int32_t track, metadata_t *meta) for (i = 1; true; ++i) { - if (!chdstream_find_track_number(fd, i, &iter)) { - if (track == CHDSTREAM_TRACK_LAST && i > 1) { + if (!chdstream_find_track_number(fd, i, &iter)) + { + if (track == CHDSTREAM_TRACK_LAST && i > 1) + { *meta = iter; return true; - } else if (track == CHDSTREAM_TRACK_PRIMARY && largest_track != 0) { - return chdstream_find_track_number(fd, largest_track, meta); } + else if (track == CHDSTREAM_TRACK_PRIMARY && largest_track != 0) + return chdstream_find_track_number(fd, largest_track, meta); } - switch (track) { + switch (track) + { case CHDSTREAM_TRACK_FIRST_DATA: - if (strcmp(iter.type, "AUDIO")) { + if (strcmp(iter.type, "AUDIO")) + { *meta = iter; return true; } break; case CHDSTREAM_TRACK_PRIMARY: - if (strcmp(iter.type, "AUDIO") && iter.frames > largest_size) { + if (strcmp(iter.type, "AUDIO") && iter.frames > largest_size) + { largest_size = iter.frames; largest_track = iter.track; } @@ -187,21 +193,19 @@ chdstream_find_special_track(chd_file *fd, int32_t track, metadata_t *meta) static bool chdstream_find_track(chd_file *fd, int32_t track, metadata_t *meta) { - if (track < 0) { + if (track < 0) return chdstream_find_special_track(fd, track, meta); - } else { - return chdstream_find_track_number(fd, track, meta); - } + return chdstream_find_track_number(fd, track, meta); } chdstream_t *chdstream_open(const char *path, int32_t track) { + metadata_t meta; uint32_t pregap = 0; const chd_header *hd = NULL; chdstream_t *stream = NULL; chd_file *chd = NULL; chd_error err = chd_open(path, CHD_OPEN_READ, NULL, &chd); - metadata_t meta; if (err != CHDERR_NONE) goto error;