Changeset View
Changeset View
Standalone View
Standalone View
iso/iso.cpp
Show First 20 Lines • Show All 351 Lines • ▼ Show 20 Line(s) | 341 | { | |||
---|---|---|---|---|---|
352 | uLong bytes; | 352 | uLong bytes; | ||
353 | 353 | | |||
354 | size = isoFileEntry->realsize(); | 354 | size = isoFileEntry->realsize(); | ||
355 | if (size >= sizeof(compressed_file_header)) zlib = true; | 355 | if (size >= sizeof(compressed_file_header)) zlib = true; | ||
356 | if (!size) size = isoFileEntry->size(); | 356 | if (!size) size = isoFileEntry->size(); | ||
357 | totalSize(size); | 357 | totalSize(size); | ||
358 | if (!size) mimeType("application/x-zerosize"); | 358 | if (!size) mimeType("application/x-zerosize"); | ||
359 | 359 | | |||
360 | if (size && !m_isoFile->device()->isOpen()) m_isoFile->device()->open(QIODevice::ReadOnly); | 360 | if (size && !m_isoFile->device()->isOpen()) { | ||
361 | m_isoFile->device()->open(QIODevice::ReadOnly); | ||||
362 | | ||||
363 | // seek(0) ensures integrity with the QIODevice's built-in buffer | ||||
364 | // see bug #372023 for details | ||||
365 | m_isoFile->device()->seek(0); | ||||
366 | } | ||||
361 | 367 | | |||
362 | if (zlib) { | 368 | if (zlib) { | ||
363 | fileData = isoFileEntry->dataAt(0, sizeof(compressed_file_header)); | 369 | fileData = isoFileEntry->dataAt(0, sizeof(compressed_file_header)); | ||
364 | if (fileData.size() == sizeof(compressed_file_header) && | 370 | if (fileData.size() == sizeof(compressed_file_header) && | ||
365 | !memcmp(fileData.data(), zisofs_magic, sizeof(zisofs_magic))) { | 371 | !memcmp(fileData.data(), zisofs_magic, sizeof(zisofs_magic))) { | ||
366 | 372 | | |||
367 | hdr = (compressed_file_header*) fileData.data(); | 373 | hdr = (compressed_file_header*) fileData.data(); | ||
368 | block_shift = hdr->block_size; | 374 | block_shift = hdr->block_size; | ||
▲ Show 20 Lines • Show All 152 Lines • Show Last 20 Lines |