aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken6/ApiExtractor/tests/testabstractmetatype.cpp
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-11-27 17:11:47 +0100
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-11-30 15:53:54 +0000
commit30cdcd7b8e7f70bf6b64450ca622dd4494e3a0ea (patch)
tree044002feaeb24281e9000648a1342073701ee29c /sources/shiboken6/ApiExtractor/tests/testabstractmetatype.cpp
parentf4fd97655f20e2ce4d24704056b7a7a9ab9db355 (diff)
shiboken6: Store AbstractMetaFunction using a QSharedPointer
Store the list functions (global / class member) as a QList<QSharedPointer<const AbstractMetaFunction> instead of a raw pointer list. This makes passing around function lists easier and solves the memory leaks caused by mixing cloned and unmodified functions while collecting the overload lists in the generators. - Change the function signatures accordingly - Add a qSharedPointerConstCast() for non-const access. - Restructure the traversing of added functions in the AbstractMetaBuilder - Remove some unused typedefs and functions unearthed by the change Change-Id: I08a6c5243750e3eb3813bc3f7172899ad2b13e22 Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/shiboken6/ApiExtractor/tests/testabstractmetatype.cpp')
-rw-r--r--sources/shiboken6/ApiExtractor/tests/testabstractmetatype.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/sources/shiboken6/ApiExtractor/tests/testabstractmetatype.cpp b/sources/shiboken6/ApiExtractor/tests/testabstractmetatype.cpp
index e65b0f214..897940cd5 100644
--- a/sources/shiboken6/ApiExtractor/tests/testabstractmetatype.cpp
+++ b/sources/shiboken6/ApiExtractor/tests/testabstractmetatype.cpp
@@ -74,7 +74,7 @@ void TestAbstractMetaType::testConstCharPtrType()
QScopedPointer<AbstractMetaBuilder> builder(TestUtil::parse(cppCode, xmlCode));
QVERIFY(!builder.isNull());
QCOMPARE(builder->globalFunctions().size(), 1);
- AbstractMetaFunction *func = builder->globalFunctions().constFirst();
+ const auto func = builder->globalFunctions().constFirst();
AbstractMetaType rtype = func->type();
// Test properties of const char*
QVERIFY(!rtype.isVoid());
@@ -111,8 +111,7 @@ void TestAbstractMetaType::testApiVersionSupported()
QCOMPARE(classes.size(), 2);
- AbstractMetaFunctionList functions = builder->globalFunctions();
- QCOMPARE(functions.size(), 2);
+ QCOMPARE(builder->globalFunctions().size(), 2);
}
@@ -145,9 +144,9 @@ void TestAbstractMetaType::testCharType()
QCOMPARE(classes.size(), 1);
QCOMPARE(classes.constFirst()->package(), QLatin1String("Foo"));
- AbstractMetaFunctionList functions = builder->globalFunctions();
+ const auto functions = builder->globalFunctions();
QCOMPARE(functions.size(), 1);
- AbstractMetaFunction *func = functions.constFirst();
+ const auto func = functions.constFirst();
AbstractMetaType rtype = func->type();
// Test properties of const char*
QVERIFY(!rtype.isVoid());
@@ -205,9 +204,9 @@ void TestAbstractMetaType::testTypedefWithTemplates()
AbstractMetaClassList classes = builder->classes();
QCOMPARE(classes.size(), 1);
- AbstractMetaFunctionList functions = builder->globalFunctions();
+ const auto functions = builder->globalFunctions();
QCOMPARE(functions.count(), 1);
- AbstractMetaFunction *function = functions.constFirst();
+ const auto function = functions.constFirst();
AbstractMetaArgumentList args = function->arguments();
QCOMPARE(args.count(), 1);
const AbstractMetaArgument &arg = args.constFirst();
@@ -232,9 +231,9 @@ void TestAbstractMetaType::testObjectTypeUsedAsValue()
QCOMPARE(classes.size(), 1);
const AbstractMetaClass *classA = AbstractMetaClass::findClass(classes, QLatin1String("A"));
QVERIFY(classA);
- AbstractMetaFunctionList overloads = classA->queryFunctionsByName(QLatin1String("method"));
+ const auto overloads = classA->queryFunctionsByName(QLatin1String("method"));
QCOMPARE(overloads.count(), 1);
- AbstractMetaFunction* method = overloads.constFirst();
+ const auto method = overloads.constFirst();
QVERIFY(method);
AbstractMetaArgumentList args = method->arguments();
QCOMPARE(args.count(), 1);