From 61f49cd2ff55f24af91c232d3a82ab3f2b565255 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 25 Nov 2020 03:34:26 +0100 Subject: [PATCH] Speed up StmtContextUtils.getModuleQNameByPrefix() We are looking up root twice here. Cache the lookup for reuse, skipping one traversal. Change-Id: I4ead06fa82b2ef822cbee0a2761bd90674bc1676 Signed-off-by: Robert Varga --- .../yangtools/yang/parser/spi/meta/StmtContextUtils.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContextUtils.java b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContextUtils.java index fb387d4b25..aadf22441b 100644 --- a/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContextUtils.java +++ b/yang/yang-parser-spi/src/main/java/org/opendaylight/yangtools/yang/parser/spi/meta/StmtContextUtils.java @@ -588,14 +588,13 @@ public final class StmtContextUtils { } public static QNameModule getModuleQNameByPrefix(final StmtContext ctx, final String prefix) { - final StmtContext importedModule = ctx.getRoot().getFromNamespace(ImportPrefixToModuleCtx.class, - prefix); + final StmtContext root = ctx.getRoot(); + final StmtContext importedModule = root.getFromNamespace(ImportPrefixToModuleCtx.class, prefix); final QNameModule qnameModule = ctx.getFromNamespace(ModuleCtxToModuleQName.class, importedModule); if (qnameModule != null) { return qnameModule; } - final StmtContext root = ctx.getRoot(); if (root.producesDeclared(SubmoduleStatement.class)) { final String moduleName = root.getFromNamespace(BelongsToPrefixToModuleName.class, prefix); return ctx.getFromNamespace(ModuleNameToModuleQName.class, moduleName); -- 2.36.6