BUG-1493: split off recursion tracking and rework it 62/10062/5
authorRobert Varga <rovarga@cisco.com>
Thu, 14 Aug 2014 09:13:19 +0000 (11:13 +0200)
committerRobert Varga <rovarga@cisco.com>
Wed, 20 Aug 2014 13:49:12 +0000 (15:49 +0200)
This patch reworks tracking of recursion state into a separate class.
This allows us to unify the four call sites and provide a simple
heuristic. A state object is allocated each time we enter a new child
and its buidlers are collected when we emerge from it -- resulting in
more accurate event reporting, eliminating false positives.

Further optimization allows us to stop recursing as soon as we know no
listeners are affected by the outcome at a particular level.

Change-Id: I2be29cebb79892c85a22e79b18c2e62f77bfb7d4
Signed-off-by: Robert Varga <rovarga@cisco.com>

No differences found