Use QByteArray instead of QString in some internal QLayout functions.

As only latin1 chars are expected, we don't need waste memory with QString.
This commit is contained in:
Hugo Parente Lima 2010-10-04 18:59:17 -03:00
commit 254d365d5c

View file

@ -3,10 +3,10 @@
void addLayoutOwnership(QLayout *layout, QLayoutItem *item); void addLayoutOwnership(QLayout *layout, QLayoutItem *item);
inline QString retrieveObjectName(PyObject *obj) inline QByteArray retrieveObjectName(PyObject *obj)
{ {
Shiboken::AutoDecRef objName(PyObject_Str(obj)); Shiboken::AutoDecRef objName(PyObject_Str(obj));
return QString(PyString_AsString(objName)); return PyString_AsString(objName);
} }
inline void addLayoutOwnership(QLayout *layout, QWidget *widget) inline void addLayoutOwnership(QLayout *layout, QWidget *widget)
@ -18,7 +18,7 @@ inline void addLayoutOwnership(QLayout *layout, QWidget *widget)
//keep the reference while the layout is orphan //keep the reference while the layout is orphan
Shiboken::AutoDecRef pyParent(Shiboken::Converter<QWidget*>::toPython(layout)); Shiboken::AutoDecRef pyParent(Shiboken::Converter<QWidget*>::toPython(layout));
Shiboken::AutoDecRef pyChild(Shiboken::Converter<QWidget*>::toPython(widget)); Shiboken::AutoDecRef pyChild(Shiboken::Converter<QWidget*>::toPython(widget));
Shiboken::keepReference(reinterpret_cast<Shiboken::SbkBaseWrapper*>(pyParent.object()), qPrintable(retrieveObjectName(pyParent)), pyChild, true); Shiboken::keepReference(reinterpret_cast<Shiboken::SbkBaseWrapper*>(pyParent.object()), retrieveObjectName(pyParent).data(), pyChild, true);
} else { } else {
Shiboken::AutoDecRef pyParent(Shiboken::Converter<QWidget*>::toPython(parent)); Shiboken::AutoDecRef pyParent(Shiboken::Converter<QWidget*>::toPython(parent));
Shiboken::AutoDecRef pyChild(Shiboken::Converter<QWidget*>::toPython(widget)); Shiboken::AutoDecRef pyChild(Shiboken::Converter<QWidget*>::toPython(widget));
@ -34,7 +34,7 @@ inline void addLayoutOwnership(QLayout *layout, QLayout *other)
//keep the reference while the layout is orphan //keep the reference while the layout is orphan
Shiboken::AutoDecRef pyParent(Shiboken::Converter<QLayout*>::toPython(layout)); Shiboken::AutoDecRef pyParent(Shiboken::Converter<QLayout*>::toPython(layout));
Shiboken::AutoDecRef pyChild(Shiboken::Converter<QLayout*>::toPython(other)); Shiboken::AutoDecRef pyChild(Shiboken::Converter<QLayout*>::toPython(other));
Shiboken::keepReference(reinterpret_cast<Shiboken::SbkBaseWrapper*>(pyParent.object()), qPrintable(retrieveObjectName(pyParent)), pyChild, true); Shiboken::keepReference(reinterpret_cast<Shiboken::SbkBaseWrapper*>(pyParent.object()), retrieveObjectName(pyParent).data(), pyChild, true);
return; return;
} }