Lebenszykluszustände von Objekten

Jedes Objekt in einem geladenen Dokument trägt einen expliziten Lebenszykluszustand aus THPDFObjectLifecycleState: olsRaw für indizierte, aber nicht materialisierte komprimierte Mitglieder, olsParsed für aus Quellbytes ohne Änderungen materialisierte Objekte, olsDirty / olsMustWrite für geänderte oder durch Aktualisierung vorgeschriebene Objekte, olsFlushed für bereits in das Ausgabedokument serialisierte Objekte und olsReleased für Objekte, deren Hintergrundpuffer freigegeben wurden

Statusabfragen

GetLoadedObjectLifecycleState meldet den Zustand jeder Objektnummer und gibt olsRaw für komprimierte Mitglieder zurück, deren Rumpf noch nicht materialisiert wurde; GetLoadedObjectLifecycleStatistics fasst Anzahlen je Zustand zusammen, einschließlich der neuen Felder RawCount, ParsedCount und FlushedCount; THPDFObject.MarkRaw, MarkParsed und MarkFlushed setzen die Zustände ausdrücklich

Speicherverhalten

Die vollständigen Speicherpfade verschieben jedes ausgegebene Objekt nach olsFlushed (Wrapper und inneres Objekt), Snapshots von Graphtransaktionen stellen den erfassten Zustand bei Rollback wieder her und die Basislinie inkrementeller Aktualisierungen setzt Objekte weiterhin auf olsClean, sodass angehängte Revisionen nur ausdrücklich veränderte Einträge enthalten; IsDirty behält seine ursprüngliche Bedeutung von olsDirty oder olsMustWrite, sodass die neuen Zustände keine unnötigen Umschreibungen auslösen