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; }
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(); }
//------------------------------------------------------------------------------ //! 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) ); } }
bool ClassInfo::hasConstant(const char *name) const { ASSERT(name); const ConstantMap &constants = getConstants(); return constants.find(name) != constants.end(); }