Move traverse functions under TIntermTraverser
This enables implementing specialized variants of TIntermTraverser.
Intermediate subclasses of TIntermTraverser are expected to maintain
contextual information in their traverse* functions, which is then used
by the visit* functions in the actual traversers.
This approach is better than adding a flag to TIntermTraverser, since
it will make the code cleaner and easier to understand.
Traverse() functions in TIntermNode subclasses are still kept around to
redirect calls to TIntermTraverser traversal functions. This is less
hacky than choosing the function with switch/case in TIntermTraverser
would be, and if new TIntermNode subclasses get added, it's not as likely
that adding the traversal support would be forgotten.
TEST=angle_unittests
BUG=angleproject:1116
Change-Id: Ie6889be1d7e955518f13cd3390dce17871ba49b5
Reviewed-on: https://chromium-review.googlesource.com/292720Tested-by:
Olli Etuaho <oetuaho@nvidia.com>
Reviewed-by:
Zhenyao Mo <zmo@chromium.org>
Reviewed-by:
Corentin Wallez <cwallez@chromium.org>
Showing
This diff is collapsed.
Click to expand it.
Please
register
or
sign in
to comment