BUG-650: allocation-free ResolveDataChangeState.needsProcessing() 20/10920/2
authorRobert Varga <rovarga@cisco.com>
Mon, 8 Sep 2014 18:46:32 +0000 (20:46 +0200)
committerRobert Varga <rovarga@cisco.com>
Mon, 8 Sep 2014 18:50:28 +0000 (20:50 +0200)
commit72ad7baa35bfd2621029a2ebdce55fb62424c6ff
tree204b29b84f96a051d464819596f2750012b31843
parent468b108dc54381ffd1043fb9734a0cb773cd4487
BUG-650: allocation-free ResolveDataChangeState.needsProcessing()

Critical path optimization. Based on logic introduced in previous
patches, we now know that when the inherited subtree listener iterable
is not a Collection, it is by definition non-empty. Use this knowledge
to elide Iterables.isEmpty() which is (relatively) costly due to
object allocation.

With this patch, ResolveDataChangeState.needsProcessing() does not
allocate any objects and relies on readily-available state to determine
whether additional processing is required.

Change-Id: I0322e0a8f58165f695f2284116057d03e2d4cb45
Signed-off-by: Robert Varga <rovarga@cisco.com>
opendaylight/md-sal/sal-inmemory-datastore/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/ResolveDataChangeState.java