aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2021-09-03 09:54:56 +0200
committerFriedemann Kleint <Friedemann.Kleint@qt.io>2021-09-03 12:19:16 +0200
commit7c122a523d48f56b5a958219a4e3dc6cbc4750dc (patch)
tree59d057f313d9f8eb88cab683ec821fad03bf6ce5
parent017e3480c8bfb55085c59fc996a41e70566e1501 (diff)
shiboken6: Refactor OverloadData
Rearrange members to minimize alignment issues, use member initialization. Fix a potential bug in determining min/max argument count for the first function, where both conditions might trigger. Task-number: PYSIDE-1653 Change-Id: I0c3cd9b0a2a97c13c3b386a51aa1c0876941645a Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
-rw-r--r--sources/shiboken6/generator/shiboken/overloaddata.cpp10
-rw-r--r--sources/shiboken6/generator/shiboken/overloaddata.h10
2 files changed, 9 insertions, 11 deletions
diff --git a/sources/shiboken6/generator/shiboken/overloaddata.cpp b/sources/shiboken6/generator/shiboken/overloaddata.cpp
index 54631729e..6f0efabe4 100644
--- a/sources/shiboken6/generator/shiboken/overloaddata.cpp
+++ b/sources/shiboken6/generator/shiboken/overloaddata.cpp
@@ -442,16 +442,14 @@ void OverloadData::sortNextOverloads()
*/
OverloadData::OverloadData(const AbstractMetaFunctionCList &overloads,
const ApiExtractorResult &api)
- : m_minArgs(256), m_maxArgs(0), m_argPos(-1), m_argType(),
- m_headOverloadData(this), m_previousOverloadData(nullptr),
- m_api(api)
+ : m_argType(), m_headOverloadData(this), m_api(api)
{
for (const auto &func : overloads) {
m_overloads.append(func);
int argSize = func->arguments().size() - numberOfRemovedArguments(func);
if (m_minArgs > argSize)
m_minArgs = argSize;
- else if (m_maxArgs < argSize)
+ if (m_maxArgs < argSize)
m_maxArgs = argSize;
OverloadData *currentOverloadData = this;
const AbstractMetaArgumentList &arguments = func->arguments();
@@ -474,8 +472,8 @@ OverloadData::OverloadData(const AbstractMetaFunctionCList &overloads,
OverloadData::OverloadData(OverloadData *headOverloadData, const AbstractMetaFunctionCPtr &func,
const AbstractMetaType &argType, int argPos,
const ApiExtractorResult &api) :
- m_minArgs(256), m_maxArgs(0), m_argPos(argPos), m_argType(argType),
- m_headOverloadData(headOverloadData), m_previousOverloadData(nullptr), m_api(api)
+ m_argType(argType), m_headOverloadData(headOverloadData), m_api(api),
+ m_argPos(argPos)
{
if (func)
this->addOverload(func);
diff --git a/sources/shiboken6/generator/shiboken/overloaddata.h b/sources/shiboken6/generator/shiboken/overloaddata.h
index ed0b7ca9a..88fbdc867 100644
--- a/sources/shiboken6/generator/shiboken/overloaddata.h
+++ b/sources/shiboken6/generator/shiboken/overloaddata.h
@@ -150,17 +150,17 @@ private:
int functionNumber(const AbstractMetaFunctionCPtr &func) const;
OverloadDataList overloadDataOnPosition(OverloadData *overloadData, int argPos) const;
- int m_minArgs;
- int m_maxArgs;
- int m_argPos;
AbstractMetaType m_argType;
QString m_argTypeReplaced;
AbstractMetaFunctionCList m_overloads;
- OverloadData *m_headOverloadData;
+ OverloadData *m_headOverloadData = nullptr;
OverloadDataList m_nextOverloadData;
- OverloadData *m_previousOverloadData;
+ OverloadData *m_previousOverloadData = nullptr;
const ApiExtractorResult m_api;
+ int m_minArgs = 256;
+ int m_maxArgs = 0;
+ int m_argPos = -1;
};
#ifndef QT_NO_DEBUG_STREAM