diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-09-03 09:54:56 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2021-09-03 12:19:16 +0200 |
commit | 7c122a523d48f56b5a958219a4e3dc6cbc4750dc (patch) | |
tree | 59d057f313d9f8eb88cab683ec821fad03bf6ce5 | |
parent | 017e3480c8bfb55085c59fc996a41e70566e1501 (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.cpp | 10 | ||||
-rw-r--r-- | sources/shiboken6/generator/shiboken/overloaddata.h | 10 |
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 |