aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/generator/shiboken2/shibokengenerator.h
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2020-10-22 08:59:03 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2020-10-27 10:01:34 +0000
commit8b88410f9f9589235738bb26739d40af4447cc05 (patch)
tree19276bec219bf2a3c728fdced77b8fb3a45063fc /sources/shiboken2/generator/shiboken2/shibokengenerator.h
parent49bd2b28d4a666107d4d124b9a5cc9fbe88d8fe8 (diff)
shiboken2: AbstractMetaArgument: use QSharedData[Pointer]
Similar to AbstractMetaType, AbstractMetaArgument was previously kept as a raw pointer. The data were copied numerous times by AbstractMetaArgument::copy() when adding the inherited functions to a AbstractMetaClass. Similar to what was done for AbstractMetaType in 6cad0686101b252cfdbd1a6768a2b02c39aa1d8a, change the type to be based on QSharedData[Pointer]. It can then be passed around and treated like a C++ value type, with Qt sharing the data when possible behind the scenes. * Remove inheritance from AbstractMetaVariable by moving the fields over. * Remove the unused field m_originalName. Change-Id: Ic9e476ca71e163de131fbecc267d0a4e336cb0b9 Reviewed-by: Christian Tismer <tismer@stackless.com>
Diffstat (limited to 'sources/shiboken2/generator/shiboken2/shibokengenerator.h')
-rw-r--r--sources/shiboken2/generator/shiboken2/shibokengenerator.h14
1 files changed, 7 insertions, 7 deletions
diff --git a/sources/shiboken2/generator/shiboken2/shibokengenerator.h b/sources/shiboken2/generator/shiboken2/shibokengenerator.h
index 7b2f0cb39..0d49764ab 100644
--- a/sources/shiboken2/generator/shiboken2/shibokengenerator.h
+++ b/sources/shiboken2/generator/shiboken2/shibokengenerator.h
@@ -297,7 +297,7 @@ protected:
static bool isCppIntegralPrimitive(const AbstractMetaType &type);
/// Checks if an argument type should be dereferenced by the Python method wrapper before calling the C++ method.
- static bool shouldDereferenceArgumentPointer(const AbstractMetaArgument *arg);
+ static bool shouldDereferenceArgumentPointer(const AbstractMetaArgument &arg);
/// Checks if a meta type should be dereferenced by the Python method wrapper passing it to C++.
static bool shouldDereferenceAbstractMetaTypePointer(const AbstractMetaType &metaType);
@@ -330,7 +330,7 @@ protected:
QString guessCPythonCheckFunction(const QString &type, AbstractMetaType *metaType);
QString cpythonIsConvertibleFunction(const TypeEntry *type, bool genericNumberType = false, bool checkExact = false);
QString cpythonIsConvertibleFunction(AbstractMetaType metaType, bool genericNumberType = false);
- QString cpythonIsConvertibleFunction(const AbstractMetaArgument *metaArg, bool genericNumberType = false);
+ QString cpythonIsConvertibleFunction(const AbstractMetaArgument &metaArg, bool genericNumberType = false);
QString cpythonToCppConversionFunction(const AbstractMetaClass *metaClass);
QString cpythonToCppConversionFunction(const AbstractMetaType &type, const AbstractMetaClass *context = nullptr);
@@ -356,9 +356,9 @@ protected:
/// Guesses the scope to where belongs an argument's default value.
QString guessScopeForDefaultValue(const AbstractMetaFunction *func,
- const AbstractMetaArgument *arg) const;
+ const AbstractMetaArgument &arg) const;
QString guessScopeForDefaultFlagsValue(const AbstractMetaFunction *func,
- const AbstractMetaArgument *arg,
+ const AbstractMetaArgument &arg,
const QString &value) const;
static QString cpythonEnumName(const EnumTypeEntry *enumEntry);
@@ -505,7 +505,7 @@ private:
*/
void writeArgument(QTextStream &s,
const AbstractMetaFunction *func,
- const AbstractMetaArgument *argument,
+ const AbstractMetaArgument &argument,
Options options = NoOption) const;
/**
* Create a QString in the C++ format to an function argument.
@@ -514,13 +514,13 @@ private:
* \param options some extra options.
*/
QString argumentString(const AbstractMetaFunction *func,
- const AbstractMetaArgument *argument,
+ const AbstractMetaArgument &argument,
Options options = NoOption) const;
QString functionReturnType(const AbstractMetaFunction *func, Options options = NoOption) const;
/// Utility function for writeCodeSnips.
- using ArgumentVarReplacementPair = QPair<const AbstractMetaArgument *, QString>;
+ using ArgumentVarReplacementPair = QPair<AbstractMetaArgument, QString>;
using ArgumentVarReplacementList = QVector<ArgumentVarReplacementPair>;
ArgumentVarReplacementList getArgumentReplacement(const AbstractMetaFunction* func,
bool usePyArgs, TypeSystem::Language language,