archive/iso9660: simplify _read()
This commit is contained in:
@@ -201,25 +201,26 @@ iso9660_input_read(InputStream *is, void *ptr, size_t size,
|
|||||||
} else {
|
} else {
|
||||||
no_blocks = size / ISO_BLOCKSIZE;
|
no_blocks = size / ISO_BLOCKSIZE;
|
||||||
}
|
}
|
||||||
if (no_blocks > 0) {
|
|
||||||
|
|
||||||
cur_block = is->offset / ISO_BLOCKSIZE;
|
if (no_blocks == 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
readed = iso9660_iso_seek_read (iis->archive->iso, ptr,
|
cur_block = is->offset / ISO_BLOCKSIZE;
|
||||||
iis->statbuf->lsn + cur_block, no_blocks);
|
|
||||||
|
|
||||||
if (readed != no_blocks * ISO_BLOCKSIZE) {
|
readed = iso9660_iso_seek_read (iis->archive->iso, ptr,
|
||||||
error.Format(iso9660_domain,
|
iis->statbuf->lsn + cur_block, no_blocks);
|
||||||
"error reading ISO file at lsn %lu",
|
|
||||||
(unsigned long)cur_block);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
if (left_bytes < size) {
|
|
||||||
readed = left_bytes;
|
|
||||||
}
|
|
||||||
|
|
||||||
is->offset += readed;
|
if (readed != no_blocks * ISO_BLOCKSIZE) {
|
||||||
|
error.Format(iso9660_domain,
|
||||||
|
"error reading ISO file at lsn %lu",
|
||||||
|
(unsigned long)cur_block);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
if (left_bytes < size) {
|
||||||
|
readed = left_bytes;
|
||||||
|
}
|
||||||
|
|
||||||
|
is->offset += readed;
|
||||||
return readed;
|
return readed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user