diff options
4 files changed, 33 insertions, 67 deletions
diff --git a/sources/shiboken6/ApiExtractor/apiextractor.cpp b/sources/shiboken6/ApiExtractor/apiextractor.cpp index b107dec02..0f7c97722 100644 --- a/sources/shiboken6/ApiExtractor/apiextractor.cpp +++ b/sources/shiboken6/ApiExtractor/apiextractor.cpp @@ -3,7 +3,6 @@ #include "apiextractor.h" #include "apiextractorresult.h" -#include "apiextractorresultdata_p.h" #include "abstractmetaargument.h" #include "abstractmetabuilder.h" #include "abstractmetaenum.h" @@ -300,17 +299,16 @@ std::optional<ApiExtractorResult> ApiExtractor::run(ApiExtractorFlags flags) InstantiationCollectContext collectContext; d->collectInstantiatedContainersAndSmartPointers(collectContext); - auto *data = new ApiExtractorResultData; - - classListToCList(d->m_builder->takeClasses(), &data->m_metaClasses); - classListToCList(d->m_builder->takeSmartPointers(), &data->m_smartPointers); - data->m_globalFunctions = d->m_builder->globalFunctions(); - data->m_globalEnums = d->m_builder->globalEnums(); - data->m_enums = d->m_builder->typeEntryToEnumsHash(); - data->m_flags = flags; - qSwap(data->m_instantiatedContainers, collectContext.instantiatedContainers); - qSwap(data->m_instantiatedSmartPointers, collectContext.instantiatedSmartPointers); - return ApiExtractorResult(data); + ApiExtractorResult result; + classListToCList(d->m_builder->takeClasses(), &result.m_metaClasses); + classListToCList(d->m_builder->takeSmartPointers(), &result.m_smartPointers); + result.m_globalFunctions = d->m_builder->globalFunctions(); + result.m_globalEnums = d->m_builder->globalEnums(); + result.m_enums = d->m_builder->typeEntryToEnumsHash(); + result.m_flags = flags; + qSwap(result.m_instantiatedContainers, collectContext.instantiatedContainers); + qSwap(result.m_instantiatedSmartPointers, collectContext.instantiatedSmartPointers); + return result; } LanguageLevel ApiExtractor::languageLevel() const diff --git a/sources/shiboken6/ApiExtractor/apiextractorresult.cpp b/sources/shiboken6/ApiExtractor/apiextractorresult.cpp index b1a386ea6..40e8fb997 100644 --- a/sources/shiboken6/ApiExtractor/apiextractorresult.cpp +++ b/sources/shiboken6/ApiExtractor/apiextractorresult.cpp @@ -2,25 +2,13 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "apiextractorresult.h" -#include "apiextractorresultdata_p.h" #include "abstractmetalang.h" #include "abstractmetaenum.h" #include "enumtypeentry.h" #include "flagstypeentry.h" -ApiExtractorResultData::ApiExtractorResultData() = default; - -ApiExtractorResultData::~ApiExtractorResultData() = default; - -ApiExtractorResult::ApiExtractorResult() : d(new ApiExtractorResultData) -{ -} - -ApiExtractorResult::ApiExtractorResult(ApiExtractorResultData *data) : - d(data) -{ -} +ApiExtractorResult::ApiExtractorResult() = default; ApiExtractorResult::ApiExtractorResult(const ApiExtractorResult &) = default; @@ -34,42 +22,42 @@ ApiExtractorResult::~ApiExtractorResult() = default; const AbstractMetaEnumList &ApiExtractorResult::globalEnums() const { - return d->m_globalEnums; + return m_globalEnums; } const AbstractMetaFunctionCList &ApiExtractorResult::globalFunctions() const { - return d->m_globalFunctions; + return m_globalFunctions; } const AbstractMetaClassCList &ApiExtractorResult::classes() const { - return d->m_metaClasses; + return m_metaClasses; } const AbstractMetaClassCList &ApiExtractorResult::smartPointers() const { - return d->m_smartPointers; + return m_smartPointers; } const AbstractMetaTypeList &ApiExtractorResult::instantiatedContainers() const { - return d->m_instantiatedContainers; + return m_instantiatedContainers; } const InstantiatedSmartPointers &ApiExtractorResult::instantiatedSmartPointers() const { - return d->m_instantiatedSmartPointers; + return m_instantiatedSmartPointers; } ApiExtractorFlags ApiExtractorResult::flags() const { - return d->m_flags; + return m_flags; } void ApiExtractorResult::setFlags(ApiExtractorFlags f) { - d->m_flags = f; + m_flags = f; } std::optional<AbstractMetaEnum> @@ -77,8 +65,8 @@ std::optional<AbstractMetaEnum> { if (!typeEntry.isNull() && typeEntry->isFlags()) typeEntry = qSharedPointerCast<const FlagsTypeEntry>(typeEntry)->originator(); - const auto it = d->m_enums.constFind(typeEntry); - if (it == d->m_enums.constEnd()) + const auto it = m_enums.constFind(typeEntry); + if (it == m_enums.constEnd()) return {}; return it.value(); } @@ -86,7 +74,7 @@ std::optional<AbstractMetaEnum> AbstractMetaFunctionCList ApiExtractorResult::implicitConversions(const TypeEntryCPtr &type) const { if (type->isValue()) { - if (auto metaClass = AbstractMetaClass::findClass(d->m_metaClasses, type)) + if (auto metaClass = AbstractMetaClass::findClass(m_metaClasses, type)) return metaClass->implicitConversions(); } return {}; diff --git a/sources/shiboken6/ApiExtractor/apiextractorresult.h b/sources/shiboken6/ApiExtractor/apiextractorresult.h index 1e1858c81..69bc56516 100644 --- a/sources/shiboken6/ApiExtractor/apiextractorresult.h +++ b/sources/shiboken6/ApiExtractor/apiextractorresult.h @@ -9,7 +9,7 @@ #include "abstractmetalang_typedefs.h" #include "typesystem_typedefs.h" -#include <QtCore/QExplicitlySharedDataPointer> +#include <QtCore/QHash> #include <optional> @@ -29,7 +29,6 @@ class ApiExtractorResult { public: ApiExtractorResult(); - explicit ApiExtractorResult(ApiExtractorResultData *data); ApiExtractorResult(const ApiExtractorResult &); ApiExtractorResult &operator=(const ApiExtractorResult &); ApiExtractorResult(ApiExtractorResult &&); @@ -60,7 +59,16 @@ public: void setFlags(ApiExtractorFlags f); private: - QExplicitlySharedDataPointer<ApiExtractorResultData> d; + AbstractMetaClassCList m_metaClasses; + AbstractMetaClassCList m_smartPointers; + AbstractMetaFunctionCList m_globalFunctions; + AbstractMetaEnumList m_globalEnums; + AbstractMetaTypeList m_instantiatedContainers; + InstantiatedSmartPointers m_instantiatedSmartPointers; + QHash<TypeEntryCPtr, AbstractMetaEnum> m_enums; + ApiExtractorFlags m_flags; + + friend class ApiExtractor; }; #endif // APIEXTRACTORRESULT_H diff --git a/sources/shiboken6/ApiExtractor/apiextractorresultdata_p.h b/sources/shiboken6/ApiExtractor/apiextractorresultdata_p.h deleted file mode 100644 index ba48bf41b..000000000 --- a/sources/shiboken6/ApiExtractor/apiextractorresultdata_p.h +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (C) 2022 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#ifndef APIEXTRACTORRESULTDATA_P_H -#define APIEXTRACTORRESULTDATA_P_H - -#include "apiextractorresult.h" - -#include <QtCore/QHash> -#include <QtCore/QSharedData> - -class ApiExtractorResultData : public QSharedData -{ -public: - ApiExtractorResultData(); - ~ApiExtractorResultData(); - - AbstractMetaClassCList m_metaClasses; - AbstractMetaClassCList m_smartPointers; - AbstractMetaFunctionCList m_globalFunctions; - AbstractMetaEnumList m_globalEnums; - AbstractMetaTypeList m_instantiatedContainers; - InstantiatedSmartPointers m_instantiatedSmartPointers; - QHash<TypeEntryCPtr, AbstractMetaEnum> m_enums; - ApiExtractorFlags m_flags; -}; - -#endif // APIEXTRACTORRESULTDATA_P_H |
