diff options
Diffstat (limited to 'src/java/org/apache')
-rw-r--r-- | src/java/org/apache/fop/render/gradient/Function.java | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/src/java/org/apache/fop/render/gradient/Function.java b/src/java/org/apache/fop/render/gradient/Function.java index 2baa87820..e0dc210d0 100644 --- a/src/java/org/apache/fop/render/gradient/Function.java +++ b/src/java/org/apache/fop/render/gradient/Function.java @@ -17,6 +17,7 @@ package org.apache.fop.render.gradient; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -214,7 +215,20 @@ public class Function { this(3, domain, range); this.functions = functions; this.bounds = bounds; - this.encode = encode; + this.encode = makeEncode(encode); + } + + private List<Double> makeEncode(List<Double> encode) { + if (encode != null) { + return encode; + } else { + encode = new ArrayList<Double>(functions.size() * 2); + for (int i = 0; i < functions.size(); i++) { + encode.add(0.0); + encode.add(1.0); + } + return encode; + } } private Function(int functionType, List<Double> domain, List<Double> range) { @@ -432,18 +446,9 @@ public class Function { } private void outputEncode(StringBuilder out, DoubleFormatter doubleFormatter) { - if (encode != null) { - out.append("/Encode "); - GradientMaker.outputDoubles(out, doubleFormatter, encode); - out.append("\n"); - } else { - out.append("/Encode [ "); - int size = functions.size(); - for (int i = 0; i < size; i++) { - out.append("0 1 "); - } - out.append("]\n"); - } + out.append("/Encode "); + GradientMaker.outputDoubles(out, doubleFormatter, encode); + out.append("\n"); } private void outputDecode(StringBuilder out, DoubleFormatter doubleFormatter) { |