blob: 0cf6910aa2a8ab1fdcafd55b21e51a41892c8089 [file] [log] [blame]
daniel@transgaming.com4f39fd92010-03-08 20:26:45 +00001//
2// Copyright (c) 2002-2010 The ANGLE Project Authors. All rights reserved.
3// Use of this source code is governed by a BSD-style license that can be
4// found in the LICENSE file.
5//
6
Jamie Madillb1a85f42014-08-19 15:23:24 -04007#include "compiler/translator/IntermNode.h"
Geoff Lang17732822013-08-29 13:46:49 -04008#include "compiler/translator/RemoveTree.h"
daniel@transgaming.combbf56f72010-04-20 18:52:13 +00009
daniel@transgaming.com4f39fd92010-03-08 20:26:45 +000010//
Jamie Madilldd0d3422014-03-26 14:01:56 -040011// Code to delete the intermediate tree.
daniel@transgaming.com4f39fd92010-03-08 20:26:45 +000012//
13void RemoveAllTreeNodes(TIntermNode* root)
14{
Jamie Madilldd0d3422014-03-26 14:01:56 -040015 std::queue<TIntermNode*> nodeQueue;
daniel@transgaming.com4f39fd92010-03-08 20:26:45 +000016
Jamie Madilldd0d3422014-03-26 14:01:56 -040017 nodeQueue.push(root);
18
19 while (!nodeQueue.empty())
20 {
21 TIntermNode *node = nodeQueue.front();
22 nodeQueue.pop();
23
24 node->enqueueChildren(&nodeQueue);
25
26 delete node;
27 }
daniel@transgaming.com4f39fd92010-03-08 20:26:45 +000028}
29