Quarantaine de flux d'objets

Un conteneur /Type /ObjStm corrompu ne disparaît plus silencieusement : la passe type-2 le met en quarantaine avec une raison, une ligne de diagnostic et les numéros d'objets membres qu'il a laissés non résolus, tandis que chaque conteneur indépendant continue de se charger et que le chargement du document lui-même se termine toujours

Raisons de quarantaine

THPDFObjStmQuarantineReason distingue osqrNotAStream, osqrBadDictionary, osqrBadHeader (entrées /N ou /First invalides), osqrBadStreamSize, osqrDecryptFailed, osqrDecompressFailed, osqrFirstOutOfRange, osqrHeaderUnparsable, osqrContainerException et, au niveau des membres, osqrMemberUnparsable pour les corps qui échouent à l'analyse hors d'un conteneur décodé avec succès sans affecter leurs frères

Diagnostics

GetLoadedQuarantinedObjStmCount et GetLoadedQuarantinedObjStmInfo retournent chaque enregistrement avec le numéro d'objet du conteneur, la raison, le texte de diagnostic et les numéros de membres non résolus ; les enregistrements s'accumulent à travers les nouvelles tentatives de récupération d'un même chargement (dédupliqués par conteneur) et ne sont effacés qu'à l'entrée du chargement suivant