@@ -592,24 +592,21 @@ void* PythonQtConv::ConvertPythonToQt(const PythonQtMethodInfo::ParameterInfo& i
592592 {
593593 QByteArray bytes = PyObjGetBytesAllowString (obj, strict, ok);
594594 if (ok) {
595- PythonQtArgumentFrame_ADD_VARIANT_VALUE_IF_NEEDED (alreadyAllocatedCPPObject, frame, QVariant (bytes), ptr);
596- ptr = (void *)((QVariant*)ptr)->constData ();
595+ ptr = frame->establishPersistentPtr <QByteArray>(alreadyAllocatedCPPObject, bytes);
597596 }
598597 } break ;
599598 case QMetaType::QString:
600599 {
601600 QString str = PyObjGetString (obj, strict, ok);
602601 if (ok) {
603- PythonQtArgumentFrame_ADD_VARIANT_VALUE_IF_NEEDED (alreadyAllocatedCPPObject, frame, QVariant (str), ptr);
604- ptr = (void *)((QVariant*)ptr)->constData ();
602+ ptr = frame->establishPersistentPtr <QString>(alreadyAllocatedCPPObject, str);
605603 }
606604 } break ;
607605 case QMetaType::QStringList:
608606 {
609607 QStringList l = PyObjToStringList (obj, strict, ok);
610608 if (ok) {
611- PythonQtArgumentFrame_ADD_VARIANT_VALUE_IF_NEEDED (alreadyAllocatedCPPObject, frame, QVariant (l), ptr);
612- ptr = (void *)((QVariant*)ptr)->constData ();
609+ ptr = frame->establishPersistentPtr <QStringList>(alreadyAllocatedCPPObject, l);
613610 }
614611 } break ;
615612
@@ -649,7 +646,7 @@ void* PythonQtConv::ConvertPythonToQt(const PythonQtMethodInfo::ParameterInfo& i
649646 QString str = PyObjGetString (obj, strict, ok);
650647 if (ok) {
651648 void * ptr2 = nullptr ;
652- PythonQtArgumentFrame_ADD_VARIANT_VALUE_IF_NEEDED ( nullptr , frame, QVariant (str), ptr2);
649+ PythonQtArgumentFrame_ADD_VARIANT_VALUE ( frame, QVariant (str), ptr2);
653650 PythonQtArgumentFrame_ADD_VARIANT_VALUE_IF_NEEDED (alreadyAllocatedCPPObject, frame,
654651 QVariant::fromValue (QStringRef ((const QString*)((QVariant*)ptr2)->constData ())), ptr);
655652 ptr = (void *)((QVariant*)ptr)->constData ();
@@ -663,38 +660,23 @@ void* PythonQtConv::ConvertPythonToQt(const PythonQtMethodInfo::ParameterInfo& i
663660 // Handle QStringView, which needs a reference to a persistent QString
664661 QString str = PyObjGetString (obj, strict, ok);
665662 if (ok) {
666- void * ptr2 = nullptr ;
667- PythonQtArgumentFrame_ADD_VARIANT_VALUE_IF_NEEDED (nullptr , frame, QVariant (str), ptr2);
668- PythonQtArgumentFrame_ADD_VARIANT_VALUE_IF_NEEDED (alreadyAllocatedCPPObject, frame,
669- QVariant::fromValue (QStringView (*((const QString*)((QVariant*)ptr2)->constData ()))), ptr);
670- ptr = (void *)((QVariant*)ptr)->constData ();
671- return ptr;
663+ return frame->establishPersistentViewPtr <QString, QStringView>(alreadyAllocatedCPPObject, str);
672664 } else {
673665 return nullptr ;
674666 }
675667 } else if (info.typeId == anyStringViewTypeId) {
676668 // Handle QAnyStringView, which needs a reference to a persistent QString
677669 QString str = PyObjGetString (obj, strict, ok);
678670 if (ok) {
679- void * ptr2 = nullptr ;
680- PythonQtArgumentFrame_ADD_VARIANT_VALUE_IF_NEEDED (nullptr , frame, QVariant (str), ptr2);
681- PythonQtArgumentFrame_ADD_VARIANT_VALUE_IF_NEEDED (alreadyAllocatedCPPObject, frame,
682- QVariant::fromValue (QAnyStringView (*((const QString*)((QVariant*)ptr2)->constData ()))), ptr);
683- ptr = (void *)((QVariant*)ptr)->constData ();
684- return ptr;
671+ return frame->establishPersistentViewPtr <QString, QAnyStringView>(alreadyAllocatedCPPObject, str);
685672 } else {
686673 return nullptr ;
687674 }
688675 } else if (info.typeId == byteArrayViewTypeId) {
689676 // Handle QByteArrayView, which needs a reference to a persistent QByteArray
690677 QByteArray ba = PyObjGetBytesAllowString (obj, strict, ok);
691678 if (ok) {
692- void * ptr2 = nullptr ;
693- PythonQtArgumentFrame_ADD_VARIANT_VALUE_IF_NEEDED (nullptr , frame, QVariant (ba), ptr2);
694- PythonQtArgumentFrame_ADD_VARIANT_VALUE_IF_NEEDED (alreadyAllocatedCPPObject, frame,
695- QVariant::fromValue (QByteArrayView (*((const QByteArray*)((QVariant*)ptr2)->constData ()))), ptr);
696- ptr = (void *)((QVariant*)ptr)->constData ();
697- return ptr;
679+ return frame->establishPersistentViewPtr <QByteArray, QByteArrayView>(alreadyAllocatedCPPObject, ba);
698680 } else {
699681 return nullptr ;
700682 }
0 commit comments