From 26151dbea9819243549196a54f4ac2f6822c444d Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 30 Jan 2023 11:01:54 +0100 Subject: [PATCH] Split calculateParentRefcount() The real meat of the method operates solely on parent, so split it off into a dedicated method. Change-Id: I9e3b8a19d4031372669c454bcbd3fbd5ceb29e07 Signed-off-by: Robert Varga (cherry picked from commit f1eab654288b106cf7ddb956aa37fb63d446b1b0) --- .../yang/parser/stmt/reactor/ReactorStmtCtx.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ReactorStmtCtx.java b/parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ReactorStmtCtx.java index 2f64a78763..feebe381a7 100644 --- a/parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ReactorStmtCtx.java +++ b/parser/yang-parser-reactor/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/reactor/ReactorStmtCtx.java @@ -880,15 +880,15 @@ abstract class ReactorStmtCtx, E extends Effec private byte calculateParentRefcount() { final ReactorStmtCtx parent = getParentContext(); - if (parent == null) { - return PARENTREF_ABSENT; - } + return parent == null ? PARENTREF_ABSENT : parent.refcountForChild(); + } + private byte refcountForChild() { // A slight wrinkle here is that our machinery handles only PRESENT -> ABSENT invalidation and we can reach here // while inference is still ongoing and hence we may not have a complete picture about existing references. We // could therefore end up caching an ABSENT result and then that information becoming stale as a new reference // is introduced. - if (parent.executionOrder() < ExecutionOrder.EFFECTIVE_MODEL) { + if (executionOrder() < ExecutionOrder.EFFECTIVE_MODEL) { return PARENTREF_UNKNOWN; } @@ -897,9 +897,9 @@ abstract class ReactorStmtCtx, E extends Effec // - negative (< REFCOUNT_NONE), meaning parent is in some stage of sweeping, hence it does not have // a reference to us // - positive (> REFCOUNT_NONE), meaning parent has an explicit refcount which is holding us down - final int refs = parent.refcount; + final int refs = refcount; if (refs == REFCOUNT_NONE) { - return parent.parentRefcount(); + return parentRefcount(); } return refs < REFCOUNT_NONE ? PARENTREF_ABSENT : PARENTREF_PRESENT; } -- 2.36.6