@@ -151,9 +151,7 @@ protected void freeReference(PdfIndirectReference reference) {
151
151
if (reference .getGenNumber () < MAX_GENERATION ) {
152
152
freeReferences .add (reference .getObjNumber ());
153
153
ensureCount (Math .max (this .count , reference .getObjNumber ()));
154
- xref [reference .getObjNumber ()] = null ;
155
154
}
156
-
157
155
}
158
156
}
159
157
@@ -170,15 +168,9 @@ protected void setCapacity(int capacity) {
170
168
*/
171
169
protected void writeXrefTableAndTrailer (PdfDocument document , PdfObject fileId , PdfObject crypto ) throws IOException {
172
170
PdfWriter writer = document .getWriter ();
173
- if (document .isAppendMode ()) {
174
- // Increment generation number for all freed references.
175
- for (Integer objNr : freeReferences ) {
176
- xref [(int ) objNr ].genNr ++;
177
- }
178
- } else {
179
- for (Integer objNr : freeReferences ) {
180
- xref [(int ) objNr ] = null ;
181
- }
171
+ // Increment generation number for all freed references.
172
+ for (Integer objNr : freeReferences ) {
173
+ xref [(int ) objNr ].genNr ++;
182
174
}
183
175
freeReferences .clear ();
184
176
@@ -205,9 +197,7 @@ protected void writeXrefTableAndTrailer(PdfDocument document, PdfObject fileId,
205
197
for (int i = 1 ; i < size (); i ++) {
206
198
PdfIndirectReference reference = xref [i ];
207
199
if (reference != null ) {
208
- if ((document .properties .appendMode && !reference .checkState (PdfObject .MODIFIED )) ||
209
- (reference .isFree () && reference .getGenNumber () == 0 ) ||
210
- (!reference .checkState (PdfObject .FLUSHED ))) {
200
+ if (document .properties .appendMode && !reference .checkState (PdfObject .MODIFIED )) {
211
201
reference = null ;
212
202
}
213
203
}
0 commit comments