Edit

kc3-lang/angle/src/compiler/translator/ValidateMaxParameters.cpp

Branch :

  • Show log

    Commit

  • Author : Olli Etuaho
    Date : 2017-05-18 15:08:24
    Hash : b427920e
    Message : Clean up ValidateMaxParameters It doesn't need to use a traverser, since all function definitions can be found simply by iterating over the children of the root node. BUG=angleproject:2040 TEST=angle_unittests Change-Id: I18a98eff9710485c0cdce73e7fffe124f7d7afb2 Reviewed-on: https://chromium-review.googlesource.com/508791 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Olli Etuaho <oetuaho@nvidia.com>

  • src/compiler/translator/ValidateMaxParameters.cpp
  • //
    // Copyright (c) 2016 The ANGLE Project Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    //
    // ValidateMaxParameters checks if function definitions have more than a set number of parameters.
    
    #include "compiler/translator/ValidateMaxParameters.h"
    
    #include "compiler/translator/IntermNode.h"
    
    namespace sh
    {
    
    bool ValidateMaxParameters(TIntermBlock *root, unsigned int maxParameters)
    {
        for (TIntermNode *node : *root->getSequence())
        {
            TIntermFunctionDefinition *definition = node->getAsFunctionDefinition();
            if (definition != nullptr &&
                definition->getFunctionPrototype()->getSequence()->size() > maxParameters)
            {
                return false;
            }
        }
        return true;
    }
    
    }  // namespace sh