États de cycle de vie d'objet

Chaque objet d'un document chargé porte un état de cycle de vie explicite issu de THPDFObjectLifecycleState : olsRaw pour les membres compressés indexés mais non matérialisés, olsParsed pour les objets matérialisés à partir des octets sources sans modification, olsDirty / olsMustWrite pour les objets modifiés ou imposés par la mise à jour, olsFlushed pour les objets déjà sérialisés dans le document de sortie et olsReleased pour les objets dont les tampons de sauvegarde ont été libérés

Requêtes d'état

GetLoadedObjectLifecycleState signale l'état de tout numéro d'objet, retournant olsRaw pour les membres compressés dont le corps n'a pas encore été matérialisé ; GetLoadedObjectLifecycleStatistics agrège les compteurs par état, y compris les nouveaux champs RawCount, ParsedCount et FlushedCount ; THPDFObject.MarkRaw, MarkParsed et MarkFlushed définissent les états explicitement

Comportement de sauvegarde

Les chemins de sauvegarde complète déplacent chaque objet émis vers olsFlushed (objet enveloppant et objet interne), les instantanés de transaction de graphe restaurent l'état capturé lors du retour en arrière, et la ligne de base de mise à jour incrémentale réinitialise toujours les objets à olsClean afin que les révisions ajoutées ne contiennent que des entrées explicitement marquées comme modifiées ; IsDirty conserve sa signification d'origine de olsDirty ou olsMustWrite, de sorte que les nouveaux états ne déclenchent jamais de réécritures parasites