summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSND\notaz_cp <SND\notaz_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2013-03-14 23:58:35 +0000
committerSND\notaz_cp <SND\notaz_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2013-03-14 23:58:35 +0000
commit91e7cfa47335be2acf93d98edfd3c35ac0b256fa (patch)
tree4eea094bc95fa58fdc2941ff3508af8883dcfeac
parent4b53e6956eb6b7abf3d7ce63ee0208a67116e9a7 (diff)
downloadpcsxr-91e7cfa47335be2acf93d98edfd3c35ac0b256fa.tar.gz
cdriso: handle no disk state better
git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@83609 e17a0e51-4ae3-4d35-97c3-1a29b211df97
-rwxr-xr-xlibpcsxcore/cdriso.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/libpcsxcore/cdriso.c b/libpcsxcore/cdriso.c
index f61b353d..7f5c7f74 100755
--- a/libpcsxcore/cdriso.c
+++ b/libpcsxcore/cdriso.c
@@ -1158,6 +1158,10 @@ static long CALLBACK ISOclose(void) {
}
}
numtracks = 0;
+ ti[1].type = 0;
+
+ memset(cdbuffer, 0, sizeof(cdbuffer));
+ CDR_getBuffer = ISOgetBuffer;
return 0;
}
@@ -1241,6 +1245,7 @@ static void DecodeRawSubData(void) {
// uses bcd format
static long CALLBACK ISOreadTrack(unsigned char *time) {
int sector = MSF2SECT(btoi(time[0]), btoi(time[1]), btoi(time[2]));
+ long ret;
if (cdHandle == NULL) {
return -1;
@@ -1255,7 +1260,9 @@ static long CALLBACK ISOreadTrack(unsigned char *time) {
}
}
- cdimg_read_func(cdHandle, 0, cdbuffer, sector);
+ ret = cdimg_read_func(cdHandle, 0, cdbuffer, sector);
+ if (ret < 0)
+ return -1;
if (subHandle != NULL) {
fseek(subHandle, sector * SUB_FRAMESIZE, SEEK_SET);