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;