From 2f548c62d50b49e193c9f7575fa6a4601b697609 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Fri, 28 Sep 2018 08:36:19 +0200 Subject: shiboken: Refactor finding of enums In the AbstractMetaBuilder, change the list of enums into a QHash with the type entry as key since that is mostly used for searching. Streamline and simplify the search functionality accordingly. Task-number: PYSIDE-817 Change-Id: I205cad1f90bc26511ea6b6e9b76ddb1bae544cf1 Reviewed-by: Christian Tismer --- sources/shiboken2/ApiExtractor/apiextractor.cpp | 34 +------------------------ 1 file changed, 1 insertion(+), 33 deletions(-) (limited to 'sources/shiboken2/ApiExtractor/apiextractor.cpp') diff --git a/sources/shiboken2/ApiExtractor/apiextractor.cpp b/sources/shiboken2/ApiExtractor/apiextractor.cpp index 80ffc3910..775485c81 100644 --- a/sources/shiboken2/ApiExtractor/apiextractor.cpp +++ b/sources/shiboken2/ApiExtractor/apiextractor.cpp @@ -177,41 +177,9 @@ static const AbstractMetaEnum* findEnumOnClasses(AbstractMetaClassList metaClass return result; } -const AbstractMetaEnum* ApiExtractor::findAbstractMetaEnum(const EnumTypeEntry* typeEntry) const -{ - if (!typeEntry) - return 0; - const AbstractMetaEnumList &globalEnums = m_builder->globalEnums(); - for (AbstractMetaEnum* metaEnum : globalEnums) { - if (metaEnum->typeEntry() == typeEntry) - return metaEnum; - } - return findEnumOnClasses(m_builder->classes(), typeEntry); -} - const AbstractMetaEnum* ApiExtractor::findAbstractMetaEnum(const TypeEntry* typeEntry) const { - if (!typeEntry) - return 0; - if (typeEntry->isFlags()) - return findAbstractMetaEnum(static_cast(typeEntry)); - if (typeEntry->isEnum()) - return findAbstractMetaEnum(static_cast(typeEntry)); - return 0; -} - -const AbstractMetaEnum* ApiExtractor::findAbstractMetaEnum(const FlagsTypeEntry* typeEntry) const -{ - if (!typeEntry) - return 0; - return findAbstractMetaEnum(typeEntry->originator()); -} - -const AbstractMetaEnum* ApiExtractor::findAbstractMetaEnum(const AbstractMetaType* metaType) const -{ - if (!metaType) - return 0; - return findAbstractMetaEnum(metaType->typeEntry()); + return m_builder->findEnum(typeEntry); } int ApiExtractor::classCount() const -- cgit v1.2.3