14f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com//
24f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
34f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com// Use of this source code is governed by a BSD-style license that can be
44f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com// found in the LICENSE file.
54f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com//
64f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com
7b1a85f48a6cb63c32e884a9dea86b1ca7275bf7cJamie Madill#include "compiler/translator/IntermNode.h"
817732823f9c21bdba9cc51ffaceb545ce3857a8cGeoff Lang#include "compiler/translator/RemoveTree.h"
9bbf56f755e0dd78c7650c52531ce412fcaaafa2bdaniel@transgaming.com
104f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com//
11dd0d3426ac7ca0320978258c72d34eb4e4cec1a2Jamie Madill// Code to delete the intermediate tree.
124f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com//
13dd0d3426ac7ca0320978258c72d34eb4e4cec1a2Jamie Madillvoid RemoveAllTreeNodes(TIntermNode* root)
144f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com{
15dd0d3426ac7ca0320978258c72d34eb4e4cec1a2Jamie Madill    std::queue<TIntermNode*> nodeQueue;
164f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com
17dd0d3426ac7ca0320978258c72d34eb4e4cec1a2Jamie Madill    nodeQueue.push(root);
184f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com
19dd0d3426ac7ca0320978258c72d34eb4e4cec1a2Jamie Madill    while (!nodeQueue.empty())
20dd0d3426ac7ca0320978258c72d34eb4e4cec1a2Jamie Madill    {
21dd0d3426ac7ca0320978258c72d34eb4e4cec1a2Jamie Madill        TIntermNode *node = nodeQueue.front();
22dd0d3426ac7ca0320978258c72d34eb4e4cec1a2Jamie Madill        nodeQueue.pop();
234f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com
24dd0d3426ac7ca0320978258c72d34eb4e4cec1a2Jamie Madill        node->enqueueChildren(&nodeQueue);
254f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com
26dd0d3426ac7ca0320978258c72d34eb4e4cec1a2Jamie Madill        delete node;
27dd0d3426ac7ca0320978258c72d34eb4e4cec1a2Jamie Madill    }
284f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com}
294f39fd99568ce175f04b5ed72062bfed0fa41803daniel@transgaming.com
30