Author: tilman
Date: Fri May 29 15:13:25 2026
New Revision: 1934750
Log:
PDFBOX-5660: optimize, as suggested by Valery Bokov; closes #457
Modified:
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/compress/COSWriterCompressionPool.java
Modified:
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/compress/COSWriterCompressionPool.java
==============================================================================
---
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/compress/COSWriterCompressionPool.java
Fri May 29 14:26:01 2026 (r1934749)
+++
pdfbox/branches/3.0/pdfbox/src/main/java/org/apache/pdfbox/pdfwriter/compress/COSWriterCompressionPool.java
Fri May 29 15:13:25 2026 (r1934750)
@@ -250,20 +250,19 @@ public class COSWriterCompressionPool
if (element instanceof COSObject)
{
COSObject cosObject = (COSObject) element;
- if (cosObject.getKey() != null &&
objectPool.contains(cosObject.getKey()))
+ COSObjectKey objectKey = cosObject.getKey();
+ COSBase object = cosObject.getObject();
+ if (objectKey != null && objectPool.contains(objectKey))
{
// check if the stored object matches the referenced object
otherwise replace the key with a new one
// there may differences if some imported content uses the
same object numbers than the target pdf
- if
(objectPool.getObject(cosObject.getKey()).equals(cosObject.getObject()))
+ if (objectPool.getObject(objectKey).equals(object))
{
return false;
}
cosObject.setKey(null);
}
- if (cosObject.getObject() != null)
- {
- return true;
- }
+ return object != null;
}
else if (element instanceof COSArray
|| (element instanceof COSDictionary &&
!allDirectObjects.contains(element)))