Пример #1
0
ClassInfo::ConstantInfo *ClassInfo::getConstantInfo(const char *name) const {
  ASSERT(name);
  const ConstantMap &constants = getConstants();
  ConstantMap::const_iterator iter = constants.find(name);
  if (iter != constants.end()) {
    return iter->second;
  }
  return NULL;
}
Пример #2
0
void FileScope::cleanupForError(AnalysisResultConstPtr ar) {
    for (auto iter = m_classes.begin(); iter != m_classes.end(); ++iter) {
        for (ClassScopePtr cls: iter->second) {
            cls->getVariables()->cleanupForError(ar);
        }
    }

    getConstants()->cleanupForError(ar);

    StringToFunctionScopePtrMap().swap(m_functions);
    delete m_redeclaredFunctions;
    m_redeclaredFunctions = 0;
    StringToClassScopePtrVecMap().swap(m_classes);
    m_pseudoMain.reset();
    m_tree.reset();
}
Пример #3
0
//------------------------------------------------------------------------------
//! MOVE TO ALL LAYERS
RCP<ConstantBuffer>
NullManager::createConstants(
   const RCP<Program>&          program,
   const Vector< Set<String> >* ignoreGroups,
   uint32_t*                    usedIgnoreGroup
)
{
   DBG_BLOCK( os_nm, "NullManager::createConstants()" );
   ConstantBuffer::Container constants;
   size_t size = getConstants( program, constants, ignoreGroups, usedIgnoreGroup );
   if( !constants.empty() )
   {
      return RCP<ConstantBuffer>( new ConstantBuffer( constants, size ) );
   }
   else
   {
      return RCP<ConstantBuffer>( new ConstantBuffer(0) );
   }
}
Пример #4
0
bool ClassInfo::hasConstant(const char *name) const {
  ASSERT(name);
  const ConstantMap &constants = getConstants();
  return constants.find(name) != constants.end();
}