diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-08-28 15:20:30 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-08-30 11:45:15 +0200 |
commit | e39a383766aa1c73e94d948d6e3a3bd20729f19b (patch) | |
tree | a77bbab4b9124ed23e7d6795cca8665766707684 /sources | |
parent | f21dd80f7cab5ce6510336be3362166610d6932c (diff) |
libpyside: Use a static string for the slot attribute attached to methods
Task-number: PYSIDE-748
Change-Id: Ieeeb2c1c392706a5c74bf29ff67ff4ddd8c4feaa
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
Diffstat (limited to 'sources')
-rw-r--r-- | sources/pyside6/libpyside/dynamicqmetaobject.cpp | 3 | ||||
-rw-r--r-- | sources/pyside6/libpyside/pysideslot.cpp | 6 | ||||
-rw-r--r-- | sources/pyside6/libpyside/pysideslot_p.h | 1 | ||||
-rw-r--r-- | sources/pyside6/libpyside/pysidestaticstrings.cpp | 1 | ||||
-rw-r--r-- | sources/pyside6/libpyside/pysidestaticstrings.h | 1 |
5 files changed, 6 insertions, 6 deletions
diff --git a/sources/pyside6/libpyside/dynamicqmetaobject.cpp b/sources/pyside6/libpyside/dynamicqmetaobject.cpp index a3a16b6a0..5a4c339b2 100644 --- a/sources/pyside6/libpyside/dynamicqmetaobject.cpp +++ b/sources/pyside6/libpyside/dynamicqmetaobject.cpp @@ -10,6 +10,7 @@ #include "pysideslot_p.h" #include "pysideqenum.h" #include "pyside_p.h" +#include "pysidestaticstrings.h" #include <shiboken.h> @@ -608,7 +609,7 @@ void MetaObjectBuilderPrivate::parsePythonType(PyTypeObject *type) } } - AutoDecRef slotAttrName(String::fromCString(PYSIDE_SLOT_LIST_ATTR)); + PyObject *slotAttrName = PySide::PySideMagicName::slot_list_attr(); // PYSIDE-315: Now take care of the rest. // Signals and slots should be separated, unless the types are modified, later. // We check for this using "is_sorted()". Sorting no longer happens at all. diff --git a/sources/pyside6/libpyside/pysideslot.cpp b/sources/pyside6/libpyside/pysideslot.cpp index 9b0f1f4e0..32f629ade 100644 --- a/sources/pyside6/libpyside/pysideslot.cpp +++ b/sources/pyside6/libpyside/pysideslot.cpp @@ -3,6 +3,7 @@ #include "pysidesignal_p.h" #include "pysideslot_p.h" +#include "pysidestaticstrings.h" #include <shiboken.h> @@ -95,7 +96,6 @@ int slotTpInit(PyObject *self, PyObject *args, PyObject *kw) PyObject *slotCall(PyObject *self, PyObject *args, PyObject * /* kw */) { - static PyObject *pySlotName = nullptr; PyObject *callback = nullptr; if (!PyArg_UnpackTuple(args, "Slot.__call__", 1, 1, &callback)) @@ -117,11 +117,9 @@ PyObject *slotCall(PyObject *self, PyObject *args, PyObject * /* kw */) const QByteArray signature = returnType + ' ' + data->slotData->name + '(' + data->slotData->args + ')'; - if (!pySlotName) - pySlotName = String::fromCString(PYSIDE_SLOT_LIST_ATTR); - PyObject *pySignature = String::fromCString(signature); PyObject *signatureList = nullptr; + PyObject *pySlotName = PySide::PySideMagicName::slot_list_attr(); if (PyObject_HasAttr(callback, pySlotName)) { signatureList = PyObject_GetAttr(callback, pySlotName); } else { diff --git a/sources/pyside6/libpyside/pysideslot_p.h b/sources/pyside6/libpyside/pysideslot_p.h index 695b7935c..7f3c03cf7 100644 --- a/sources/pyside6/libpyside/pysideslot_p.h +++ b/sources/pyside6/libpyside/pysideslot_p.h @@ -4,7 +4,6 @@ #define PYSIDE_SLOT_P_H #include <sbkpython.h> -#define PYSIDE_SLOT_LIST_ATTR "_slots" namespace PySide { namespace Slot { void init(PyObject* module); diff --git a/sources/pyside6/libpyside/pysidestaticstrings.cpp b/sources/pyside6/libpyside/pysidestaticstrings.cpp index 92f4b204c..9105fff6a 100644 --- a/sources/pyside6/libpyside/pysidestaticstrings.cpp +++ b/sources/pyside6/libpyside/pysidestaticstrings.cpp @@ -34,5 +34,6 @@ STATIC_STRING_IMPL(doc, "__doc__") STATIC_STRING_IMPL(func, "__func__") STATIC_STRING_IMPL(name, "__name__") STATIC_STRING_IMPL(property_methods, "__property_methods__") +STATIC_STRING_IMPL(slot_list_attr, "_slots") } // namespace PyMagicName } // namespace PySide diff --git a/sources/pyside6/libpyside/pysidestaticstrings.h b/sources/pyside6/libpyside/pysidestaticstrings.h index 1514c3f45..3d00fac68 100644 --- a/sources/pyside6/libpyside/pysidestaticstrings.h +++ b/sources/pyside6/libpyside/pysidestaticstrings.h @@ -30,6 +30,7 @@ PYSIDE_API PyObject *doc(); PYSIDE_API PyObject *func(); PYSIDE_API PyObject *name(); PYSIDE_API PyObject *property_methods(); +PYSIDE_API PyObject *slot_list_attr(); } // namespace PyMagicName } // namespace PySide |