private function safeSetThumbnail(PelDataWindow $d, $offset, $length)
{
/*
* Load the thumbnail if both the offset and the length is
* available.
*/
if ($offset > 0 && $length > 0) {
/*
* Some images have a broken length, so we try to carefully
* check the length before we store the thumbnail.
*/
if ($offset + $length > $d->getSize()) {
Pel::maybeThrow(new PelIfdException('Thumbnail length %d bytes ' . 'adjusted to %d bytes.', $length, $d->getSize() - $offset));
$length = $d->getSize() - $offset;
}
/* Now set the thumbnail normally. */
$this->setThumbnail($d->getClone($offset, $length));
}
}