E.g. imagine the following example:
A --> B ----. v M --> N --> Z <-- S <-- R | v X>
Widget Z has multiple input paths, if any change was made that cause Z to be marked as dirty the power state of Z has to be re-computed. This requires to know the number of inputs and outputs of Z, which requires to know the number of inputs and outputs of all widgets on all paths from or to Z. Previously this meant re-computing all inputs and outputs of all the path going into or out of Z. With this patch in place only paths that actually have changed need to be re-computed.
so suppose "B" was the widget which caused "Z" to be dirtied then with your patch only you will calculate A->B->N->Z ?
Is my understanding right?
A->B->C | v G->P v | D->E->F
What will happen in the above diagram if P gets dirtied?