diff --git a/src/template/incremental/Notification.tt b/src/template/incremental/Notification.tt index 8ad274f71dabda6f4973a59d8a535723b38c3ece..7b5dc268e81d7fe01ae030b4ec601ac180fe92ff 100644 --- a/src/template/incremental/Notification.tt +++ b/src/template/incremental/Notification.tt @@ -373,18 +373,6 @@ $if(IncrementalLevelNode) } $endif -$if(IncrementalLevelRegion) - /** @apilevel internal */ - public boolean $ASTNode.inc_flush_child($ASTNode node) { - for (int i = 0; node.mayHaveRewrite() && i < children.length; i++) { - if (children[i] == node) { - return inc_restoreInitialForIndex(i, node.handler()); - } - } - return true; - } -$endif - $endif $endif $endif @@ -525,80 +513,14 @@ $if(IncrementalLevelRegion) $if(#isRegionRoot) /** @apilevel internal */ public boolean #name.inc_flushRegionRoot() { - // Check for rewrites - // check for inner rewrite in region root - boolean rewriteFlushed = true; - if (parent != null) { - rewriteFlushed = parent.inc_flush_child(this); - // region root had an outer rewrite which was flushed (parent == null) -> done - if (rewriteFlushed && parent == null) { - return true; - } - } - boolean innerRewrite = false; - if (rewriteFlushed) { - // the region may have inner rewrites - innerRewrite = inc_checkRegionForInnerRewrite(); - } else { - // region root had an inner rewrite which wasn't flushed - innerRewrite = true; - } - // Inner rewrites in the region (including the root) means abort and notify the enclosing rewritten node - if (innerRewrite) { - $ASTNode enclosingNode = inc_locateEnclosingRewrittenNode(); - enclosingNode.handler().flushRegion(); - return false; - } - // Check NTAs, this may remove the region - boolean regionRemoved = false; - if (parent != null) { - regionRemoved = parent.inc_flush_NTA(this); // check NTA - } - // region is still here, flush remaining values and outer rewrites - if (!regionRemoved) { - inc_flushRegion_rewrites(); - inc_flushRegion(); - } + inc_flushRegion(); return true; } $else $if(#isASTNodeDecl) /** @apilevel internal */ public boolean #name.inc_flushRegionRoot() { - // Check for rewrites - // check for inner rewrite in region root - boolean rewriteFlushed = true; - if (parent != null) { - rewriteFlushed = parent.inc_flush_child(this); - // region root had an outer rewrite which was flushed (parent == null) -> done - if (rewriteFlushed && parent == null) { - return true; - } - } - boolean innerRewrite = false; - if (rewriteFlushed) { - // the region may have inner rewrites - innerRewrite = inc_checkRegionForInnerRewrite(); - } else { - // region root had an inner rewrite which wasn't flushed - innerRewrite = true; - } - // Inner rewrites in the region (including the root) means abort and notify the enclosing rewritten node - if (innerRewrite) { - $ASTNode enclosingNode = inc_locateEnclosingRewrittenNode(); - enclosingNode.handler().flushRegion(); - return false; - } - // Check NTAs, this may remove the region - boolean regionRemoved = false; - if (parent != null) { - regionRemoved = parent.inc_flush_NTA(this); // check NTA - } - // region is still here, flush remaining values and outer rewrites - if (!regionRemoved) { - inc_flushRegion_rewrites(); - inc_flushRegion(); - } + inc_flushRegion(); return true; } $endif @@ -639,29 +561,6 @@ ASTNode.incCheckRegionForInnerRewriteMethod = [[ $if(IncrementalEnabled) $if(IncrementalChangeFlush) -$if(IncrementalLevelRegion) -$if(#isASTNodeDecl) - /** @apilevel internal */ - public boolean $ASTNode.inc_checkRegionForInnerRewrite() { - for (int i = 0; children != null && children_computed != null && i < children.length && i < children_computed.length; i++) { - $ASTNode child = children[i]; - if (child != null && !child.isRegionRoot()) { - if (children_computed[i]) { - if (init_children != null && i < init_children.length && init_children[i] == null) { - return true; - } - } else { - if (child.inc_checkRegionForInnerRewrite()) { - return true; - } - } - } - } - return false; - } -$endif -$endif - $if(IncrementalLevelNode) $if(#isASTNodeDecl) /** @apilevel internal */ @@ -782,32 +681,6 @@ ASTNode.incFlushRegionRewritesMethod = [[ $if(IncrementalEnabled) $if(IncrementalChangeFlush) -$if(IncrementalLevelRegion) -$if(#isASTNodeDecl) - /** @apilevel internal */ - public boolean $ASTNode.inc_flushRegion_rewrites() { - for (int i = 0; children != null && i < children.length; i++) { - $ASTNode child = children[i]; - if (child == null || child.isRegionRoot()) { - continue; - } - // rewritten child - if (children_computed != null && i < children_computed.length && children_computed[i]) { - if (!inc_restoreInitialForIndex(i, handler())) { - return false; - } - } else { - // not rewritten child - if (!child.inc_flushRegion_rewrites()) { - return false; - } - } - } - return true; - } -$endif -$endif - $if(IncrementalLevelAttr) $if(#isASTNodeDecl) /** @apilevel internal */ diff --git a/src/template/incremental/Tracking.tt b/src/template/incremental/Tracking.tt index d2f2b268bb1de9bb9f9edf5913c9509d55ed8074..27467edcf8e2cc9c20c0d15cb03a690c0f52c847 100644 --- a/src/template/incremental/Tracking.tt +++ b/src/template/incremental/Tracking.tt @@ -382,11 +382,11 @@ ASTNode.incHookGetChildExitEval = [[ $if(IncrementalEnabled) $if(IncrementalLevelParam) -//state().exitAttrStoreEval(getChild_handler[i]); +state().exitAttrStoreEval(getChild_handler[i]); $endif $if(IncrementalLevelRegion) -//state().exitAttrStoreEval(handler()); +state().exitAttrStoreEval(handler()); $endif $endif