⚠ This page is served via a proxy. Original site: https://github.com
This service does not collect credentials or authentication data.
Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 11 additions & 3 deletions pdfbox/src/main/java/org/apache/pdfbox/cos/COSArray.java
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,14 @@ public COSArray()
this(new ArrayList<>(), true);
}

/**
* Constructor.
*/
public COSArray(int initialCapacity)
{
this(new ArrayList<>(initialCapacity), true);
}

/**
* Use the given list to initialize the COSArray.
*
Expand Down Expand Up @@ -725,7 +733,7 @@ public List<Integer> toCOSNumberIntegerList()
*/
public static COSArray ofCOSIntegers(List<Integer> integer)
{
COSArray retval = new COSArray();
COSArray retval = new COSArray(integer.size());
integer.forEach(s -> retval.add(COSInteger.get(s.longValue())));
return retval;
}
Expand All @@ -739,7 +747,7 @@ public static COSArray ofCOSIntegers(List<Integer> integer)
*/
public static COSArray ofCOSNames(List<String> strings)
{
COSArray retval = new COSArray();
COSArray retval = new COSArray(strings.size());
strings.forEach(s -> retval.add(COSName.getPDFName(s)));
return retval;
}
Expand All @@ -753,7 +761,7 @@ public static COSArray ofCOSNames(List<String> strings)
*/
public static COSArray ofCOSStrings(List<String> strings)
{
COSArray retval = new COSArray();
COSArray retval = new COSArray(strings.size());
strings.forEach(s -> retval.add(new COSString(s)));
return retval;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ private COSBase cloneCOSBaseForNewDocument(COSBase base) throws IOException

private COSArray cloneCOSArray(COSArray array) throws IOException
{
COSArray newArray = new COSArray();
COSArray newArray = new COSArray(array.size());
for (int i = 0; i < array.size(); i++)
{
COSBase value = array.get(i);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,7 @@ private void cloneTreeElement(
{
// create a clone of the array
COSArray srcArray = (COSArray) actualSrcObj;
COSArray dstArray = new COSArray();
COSArray dstArray = new COSArray(srcArray.size());
for (int i = 0; i < srcArray.size(); ++i)
{
COSBase srcElement = srcArray.getObject(i);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,15 +74,15 @@ public COSStream getStream() throws IOException
stream.setLong(COSName.SIZE, size);

List<Long> indexEntry = getIndexEntry();
COSArray indexAsArray = new COSArray();
COSArray indexAsArray = new COSArray(indexEntry.size());
for ( Long i : indexEntry )
{
indexAsArray.add(COSInteger.get(i));
}
stream.setItem(COSName.INDEX, indexAsArray);

int[] wEntry = getWEntry();
COSArray wAsArray = new COSArray();
COSArray wAsArray = new COSArray(wEntry.length);
for (int j : wEntry)
{
wAsArray.add(COSInteger.get(j));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ public PDPageTree(COSDictionary root)
// repair bad PDFs which contain a Page dict instead of a page tree, see PDFBOX-3154
if (COSName.PAGE.equals(root.getCOSName(COSName.TYPE)))
{
COSArray kids = new COSArray();
COSArray kids = new COSArray(1);
kids.add(root);
this.root = new COSDictionary();
this.root.setItem(COSName.KIDS, kids);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ protected String[] getArrayOfString(String name)
protected void setArrayOfString(String name, String[] values)
{
COSBase oldBase = this.getCOSObject().getDictionaryObject(name);
COSArray array = new COSArray();
COSArray array = new COSArray(values.length);
for (String value : values)
{
array.add(new COSString(value));
Expand Down Expand Up @@ -212,7 +212,7 @@ protected void setName(String name, String value)
protected void setArrayOfName(String name, String[] values)
{
COSBase oldBase = this.getCOSObject().getDictionaryObject(name);
COSArray array = new COSArray();
COSArray array = new COSArray(values.length);
for (String value : values)
{
array.add(COSName.getPDFName(value));
Expand Down Expand Up @@ -363,7 +363,7 @@ protected void setNumber(String name, int value)
*/
protected void setArrayOfNumber(String name, float[] values)
{
COSArray array = new COSArray();
COSArray array = new COSArray(values.length);
for (float value : values)
{
array.add(new COSFloat(value));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@ protected FDFAnnotation(Element element) throws IOException
if (dashes != null && !dashes.isEmpty())
{
String[] dashesValues = dashes.split(",");
COSArray dashPattern = new COSArray();
COSArray dashPattern = new COSArray(dashesValues.length);
for (String dashesValue : dashesValues)
{
dashPattern.add(COSNumber.get(dashesValue));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ public void setStartPointEndingStyle(String style)
COSArray array = annot.getCOSArray(COSName.LE);
if (array == null)
{
array = new COSArray();
array = new COSArray(2);
array.add(COSName.getPDFName(actualStyle));
array.add(COSName.getPDFName(PDAnnotationLine.LE_NONE));
annot.setItem(COSName.LE, array);
Expand Down Expand Up @@ -186,7 +186,7 @@ public void setEndPointEndingStyle(String style)
COSArray array = annot.getCOSArray(COSName.LE);
if (array == null)
{
array = new COSArray();
array = new COSArray(2);
array.add(COSName.getPDFName(PDAnnotationLine.LE_NONE));
array.add(COSName.getPDFName(actualStyle));
annot.setItem(COSName.LE, array);
Expand Down