You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@freemarker.apache.org by dd...@apache.org on 2015/12/14 23:51:15 UTC
[1/4] incubator-freemarker git commit: (JavaDoc typo fix)
Repository: incubator-freemarker
Updated Branches:
refs/heads/2.3-gae 83920692f -> bc303ab9b
(JavaDoc typo fix)
Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/a31cf2a6
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/a31cf2a6
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/a31cf2a6
Branch: refs/heads/2.3-gae
Commit: a31cf2a6918e3f128778d2ace9b2aa680a9ae8d9
Parents: 8392069
Author: ddekany <dd...@apache.org>
Authored: Mon Dec 14 22:20:26 2015 +0100
Committer: ddekany <dd...@apache.org>
Committed: Mon Dec 14 22:20:26 2015 +0100
----------------------------------------------------------------------
src/main/java/freemarker/cache/TemplateLookupStrategy.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/a31cf2a6/src/main/java/freemarker/cache/TemplateLookupStrategy.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/cache/TemplateLookupStrategy.java b/src/main/java/freemarker/cache/TemplateLookupStrategy.java
index 0ce7c67..6b50aa9 100644
--- a/src/main/java/freemarker/cache/TemplateLookupStrategy.java
+++ b/src/main/java/freemarker/cache/TemplateLookupStrategy.java
@@ -26,7 +26,7 @@ import freemarker.template.Configuration;
import freemarker.template.Template;
/**
- * Finds the {@link TemplateLoader}-level (storage-level) template source for the template name witch which the template
+ * Finds the {@link TemplateLoader}-level (storage-level) template source for the template name with which the template
* was requested (as in {@link Configuration#getTemplate(String)}). This usually means trying various
* {@link TemplateLoader}-level template names (so called source names; see also {@link Template#getSourceName()}) that
* were deduced from the requested name. Trying a name usually means calling
[3/4] incubator-freemarker git commit: (TemplateElement.getChildNodes
code cleanup)
Posted by dd...@apache.org.
(TemplateElement.getChildNodes code cleanup)
Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/77d44df1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/77d44df1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/77d44df1
Branch: refs/heads/2.3-gae
Commit: 77d44df1e769c1f74e673000941028a3430fdb0e
Parents: 1cb2a5f
Author: ddekany <dd...@apache.org>
Authored: Mon Dec 14 22:59:16 2015 +0100
Committer: ddekany <dd...@apache.org>
Committed: Mon Dec 14 22:59:16 2015 +0100
----------------------------------------------------------------------
src/main/java/freemarker/core/TemplateElement.java | 4 ++--
src/main/java/freemarker/template/SimpleSequence.java | 1 -
2 files changed, 2 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/77d44df1/src/main/java/freemarker/core/TemplateElement.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/core/TemplateElement.java b/src/main/java/freemarker/core/TemplateElement.java
index 4cf195b..7d3139a 100644
--- a/src/main/java/freemarker/core/TemplateElement.java
+++ b/src/main/java/freemarker/core/TemplateElement.java
@@ -160,15 +160,15 @@ abstract public class TemplateElement extends TemplateObject {
}
public TemplateSequenceModel getChildNodes() {
- SimpleSequence result = new SimpleSequence(1);
if (childBuffer != null) {
final SimpleSequence seq = new SimpleSequence(childCount);
for (int i = 0; i < childCount; i++) {
seq.add(childBuffer[i]);
}
return seq;
+ } else {
+ return new SimpleSequence(0);
}
- return result;
}
public String getNodeName() {
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/77d44df1/src/main/java/freemarker/template/SimpleSequence.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/template/SimpleSequence.java b/src/main/java/freemarker/template/SimpleSequence.java
index 2730d58..0cc9411 100644
--- a/src/main/java/freemarker/template/SimpleSequence.java
+++ b/src/main/java/freemarker/template/SimpleSequence.java
@@ -99,7 +99,6 @@ public class SimpleSequence extends WrappingTemplateModel implements TemplateSeq
public SimpleSequence(int capacity) {
list = new ArrayList(capacity);
}
-
/**
* Constructs a simple sequence that will contain the elements
[2/4] incubator-freemarker git commit: (Just local variable name
fixes, and one more AST test)
Posted by dd...@apache.org.
(Just local variable name fixes, and one more AST test)
Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/1cb2a5fa
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/1cb2a5fa
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/1cb2a5fa
Branch: refs/heads/2.3-gae
Commit: 1cb2a5fa8167ae34e59cc940617a31459300d91c
Parents: a31cf2a
Author: ddekany <dd...@apache.org>
Authored: Mon Dec 14 22:44:17 2015 +0100
Committer: ddekany <dd...@apache.org>
Committed: Mon Dec 14 22:44:17 2015 +0100
----------------------------------------------------------------------
.../java/freemarker/core/TemplateElement.java | 32 ++++++++++----------
src/test/java/freemarker/core/ASTTest.java | 4 +++
.../core/ast-multipleignoredchildren.ast | 12 ++++++++
.../core/ast-multipleignoredchildren.ftl | 15 +++++++++
4 files changed, 47 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/1cb2a5fa/src/main/java/freemarker/core/TemplateElement.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/core/TemplateElement.java b/src/main/java/freemarker/core/TemplateElement.java
index 350bfa1..4cf195b 100644
--- a/src/main/java/freemarker/core/TemplateElement.java
+++ b/src/main/java/freemarker/core/TemplateElement.java
@@ -350,9 +350,9 @@ abstract public class TemplateElement extends TemplateObject {
* is the duty of the caller, not of this method.
*/
TemplateElement postParseCleanup(boolean stripWhitespace) throws ParseException {
- int regulatedChildCount = this.childCount;
- if (regulatedChildCount != 0) {
- for (int i = 0; i < regulatedChildCount; i++) {
+ int childCount = this.childCount;
+ if (childCount != 0) {
+ for (int i = 0; i < childCount; i++) {
TemplateElement te = childBuffer[i];
//!!T temporal assertion
@@ -370,30 +370,30 @@ abstract public class TemplateElement extends TemplateObject {
te.parent = this;
te.index = i;
}
- for (int i = 0; i < regulatedChildCount; i++) {
+ for (int i = 0; i < childCount; i++) {
TemplateElement te = childBuffer[i];
if (te.isIgnorable(stripWhitespace)) {
- // TODO Optimize this...
- regulatedChildCount--;
- for (int j = i; j < regulatedChildCount; j++) {
+ childCount--;
+ // As later isIgnorable calls might investigates the siblings, we have to move all the items now.
+ for (int j = i; j < childCount; j++) {
final TemplateElement te2 = childBuffer[j + 1];
childBuffer[j] = te2;
te2.index = j;
}
- childBuffer[regulatedChildCount] = null;
- this.childCount = regulatedChildCount;
+ childBuffer[childCount] = null;
+ this.childCount = childCount;
i--;
}
}
- if (regulatedChildCount == 0) {
+ if (childCount == 0) {
childBuffer = null;
- } else if (regulatedChildCount < childBuffer.length
- && regulatedChildCount <= childBuffer.length * 3 / 4) {
- TemplateElement[] trimmedregulatedChildBuffer = new TemplateElement[regulatedChildCount];
- for (int i = 0; i < regulatedChildCount; i++) {
- trimmedregulatedChildBuffer[i] = childBuffer[i];
+ } else if (childCount < childBuffer.length
+ && childCount <= childBuffer.length * 3 / 4) {
+ TemplateElement[] trimmedChildBuffer = new TemplateElement[childCount];
+ for (int i = 0; i < childCount; i++) {
+ trimmedChildBuffer[i] = childBuffer[i];
}
- childBuffer = trimmedregulatedChildBuffer;
+ childBuffer = trimmedChildBuffer;
}
}
return this;
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/1cb2a5fa/src/test/java/freemarker/core/ASTTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/freemarker/core/ASTTest.java b/src/test/java/freemarker/core/ASTTest.java
index 6ba4378..a700334 100644
--- a/src/test/java/freemarker/core/ASTTest.java
+++ b/src/test/java/freemarker/core/ASTTest.java
@@ -58,6 +58,10 @@ public class ASTTest extends FileTestCase {
public void testMixedContentSimplifications() throws Exception {
testAST("ast-mixedcontentsimplifications");
}
+
+ public void testMultipleIgnoredChildren() throws Exception {
+ testAST("ast-multipleignoredchildren");
+ }
private void testAST(String testName) throws FileNotFoundException, IOException {
final String templateName = testName + ".ftl";
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/1cb2a5fa/src/test/resources/freemarker/core/ast-multipleignoredchildren.ast
----------------------------------------------------------------------
diff --git a/src/test/resources/freemarker/core/ast-multipleignoredchildren.ast b/src/test/resources/freemarker/core/ast-multipleignoredchildren.ast
new file mode 100644
index 0000000..798e81b
--- /dev/null
+++ b/src/test/resources/freemarker/core/ast-multipleignoredchildren.ast
@@ -0,0 +1,12 @@
+#mixed_content // f.c.MixedContent
+ #text // f.c.TextBlock
+ - content: "a\n" // String
+ #text // f.c.TextBlock
+ - content: "b\n" // String
+ #text // f.c.TextBlock
+ - content: "c\n" // String
+ #text // f.c.TextBlock
+ - content: "d\n" // String
+ #if // f.c.ConditionalBlock
+ - condition: true // f.c.BooleanLiteral
+ - AST-node subtype: "0" // Integer
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/1cb2a5fa/src/test/resources/freemarker/core/ast-multipleignoredchildren.ftl
----------------------------------------------------------------------
diff --git a/src/test/resources/freemarker/core/ast-multipleignoredchildren.ftl b/src/test/resources/freemarker/core/ast-multipleignoredchildren.ftl
new file mode 100644
index 0000000..10b8d87
--- /dev/null
+++ b/src/test/resources/freemarker/core/ast-multipleignoredchildren.ftl
@@ -0,0 +1,15 @@
+a
+<#compress></#compress>
+b
+<#compress></#compress>
+<#compress></#compress>
+c
+<#compress></#compress>
+<#compress></#compress>
+<#compress></#compress>
+d
+<#if true>
+ <#compress></#compress>
+ <#compress></#compress>
+ <#compress></#compress>
+</#if>
\ No newline at end of file
[4/4] incubator-freemarker git commit: Decreased macro call stack
usage by 1.
Posted by dd...@apache.org.
Decreased macro call stack usage by 1.
Project: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/commit/bc303ab9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/tree/bc303ab9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-freemarker/diff/bc303ab9
Branch: refs/heads/2.3-gae
Commit: bc303ab9b42aa02cb94419dcff719fdc2d64160e
Parents: 77d44df
Author: ddekany <dd...@apache.org>
Authored: Mon Dec 14 23:49:09 2015 +0100
Committer: ddekany <dd...@apache.org>
Committed: Mon Dec 14 23:51:00 2015 +0100
----------------------------------------------------------------------
src/main/java/freemarker/core/Environment.java | 5 +++--
src/main/java/freemarker/core/Macro.java | 6 ------
2 files changed, 3 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/bc303ab9/src/main/java/freemarker/core/Environment.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/core/Environment.java b/src/main/java/freemarker/core/Environment.java
index 004012e..a622e9b 100644
--- a/src/main/java/freemarker/core/Environment.java
+++ b/src/main/java/freemarker/core/Environment.java
@@ -344,7 +344,7 @@ public final class Environment extends Configurable {
*
* @since 2.3.24
*/
- void visit(TemplateElement[] elementBuffer) throws IOException, TemplateException {
+ final void visit(TemplateElement[] elementBuffer) throws IOException, TemplateException {
if (elementBuffer == null) {
return;
}
@@ -689,7 +689,8 @@ public final class Environment extends Configurable {
currentNamespace = (Namespace) macroToNamespaceLookup.get(macro);
try {
- macroCtx.runMacro(this);
+ macroCtx.sanityCheck(this);
+ visit(macro.getChildBuffer());
} catch (ReturnInstruction.Return re) {
// Not an error, just a <#return>
} catch (TemplateException te) {
http://git-wip-us.apache.org/repos/asf/incubator-freemarker/blob/bc303ab9/src/main/java/freemarker/core/Macro.java
----------------------------------------------------------------------
diff --git a/src/main/java/freemarker/core/Macro.java b/src/main/java/freemarker/core/Macro.java
index 44b3505..162cad3 100644
--- a/src/main/java/freemarker/core/Macro.java
+++ b/src/main/java/freemarker/core/Macro.java
@@ -19,7 +19,6 @@
package freemarker.core;
-import java.io.IOException;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
@@ -176,11 +175,6 @@ public final class Macro extends TemplateElement implements TemplateModel {
return Macro.this;
}
- void runMacro(Environment env) throws TemplateException, IOException {
- sanityCheck(env);
- env.visit(getChildBuffer());
- }
-
// Set default parameters, check if all the required parameters are defined.
void sanityCheck(Environment env) throws TemplateException {
boolean resolvedAnArg, hasUnresolvedArg;