gfx/angle/src/compiler/RenameFunction.h

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

     1 //
     2 // Copyright (c) 2012 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 //
     7 #ifndef COMPILER_RENAME_FUNCTION
     8 #define COMPILER_RENAME_FUNCTION
    10 #include "compiler/intermediate.h"
    12 //
    13 // Renames a function, including its declaration and any calls to it.
    14 //
    15 class RenameFunction : public TIntermTraverser
    16 {
    17 public:
    18     RenameFunction(const TString& oldFunctionName, const TString& newFunctionName)
    19     : TIntermTraverser(true, false, false)
    20     , mOldFunctionName(oldFunctionName)
    21     , mNewFunctionName(newFunctionName) {}
    23     virtual bool visitAggregate(Visit visit, TIntermAggregate* node)
    24     {
    25         TOperator op = node->getOp();
    26         if ((op == EOpFunction || op == EOpFunctionCall) && node->getName() == mOldFunctionName)
    27             node->setName(mNewFunctionName);
    28         return true;
    29     }
    31 private:
    32     const TString mOldFunctionName;
    33     const TString mNewFunctionName;
    34 };
    36 #endif  // COMPILER_RENAME_FUNCTION

mercurial