オブジェクトライフサイクル状態
ロード済みドキュメント内のすべてのオブジェクトは、THPDFObjectLifecycleState の明示的なライフサイクル状態を持ちます: インデックス済みだが未マテリアライズの圧縮メンバーは olsRaw、ソースのバイト列から変更なしでマテリアライズされたオブジェクトは olsParsed、変更されたオブジェクトまたは更新が必須のオブジェクトは olsDirty / olsMustWrite、出力ドキュメントへシリアライズ済みのオブジェクトは olsFlushed、バックのバッファが解放されたオブジェクトは olsReleased です
状態クエリ
GetLoadedObjectLifecycleState は任意のオブジェクト番号の状態を報告し、本体がまだ具体化されていない圧縮メンバーには olsRaw を返します。GetLoadedObjectLifecycleStatistics は新しい RawCount、ParsedCount、FlushedCount フィールドを含む状態ごとのカウントを集計します。THPDFObject.MarkRaw、MarkParsed、MarkFlushed は状態を明示的に設定します
保存動作
フル保存のパスでは、出力したすべてのオブジェクト(ラッパーと内側のオブジェクト)が olsFlushed に移ります。グラフのトランザクションスナップショットは、ロールバック時に取得済みの状態を復元します。増分更新のベースラインでは、追記されるリビジョンに明示的にダーティにしたエントリだけが含まれるよう、引き続きオブジェクトを olsClean にリセットします。IsDirty は従来どおり olsDirty または olsMustWrite を意味するため、新しい状態が不要な書き直しを引き起こすことはありません