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