From ba266efd6a8ebf1a853d7dcc6543991205bcf2db Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 25 Oct 2016 19:11:40 +0200 Subject: [PATCH] BUG-6522: do not accidentally grow lists If we end up with an empty collection being passed in, do not do any processing so we do not inflate lists unnecessarily. In profiling this showed to waste as much as 23MiB of memory. Change-Id: Ibb47953894162e6658f473ca763f17b8a98d2cb2 Signed-off-by: Robert Varga --- .../yang/parser/stmt/reactor/StatementContextBase.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java index f9247a4753..45bf701a1a 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/StatementContextBase.java @@ -128,6 +128,10 @@ public abstract class StatementContextBase, E @Override public void addAsEffectOfStatement(final Collection> ctxs) { + if (ctxs.isEmpty()) { + return; + } + if (effectOfStatement.isEmpty()) { effectOfStatement = new ArrayList<>(ctxs.size()); } @@ -319,6 +323,10 @@ public abstract class StatementContextBase, E * if statement parameter is null */ public void addEffectiveSubstatements(final Collection> substatements) { + if (substatements.isEmpty()) { + return; + } + substatements.forEach(Preconditions::checkNotNull); beforeAddEffectiveStatement(substatements.size()); effective.addAll(substatements); -- 2.36.6