File tree Expand file tree Collapse file tree 2 files changed +26
-32
lines changed
Expand file tree Collapse file tree 2 files changed +26
-32
lines changed Original file line number Diff line number Diff line change @@ -115,32 +115,3 @@ quint64* PythonQtArgumentFrame::nextPODPtr()
115115 _podArgs.push_back (0 );
116116 return &_podArgs[_podArgs.size () - 1 ];
117117}
118-
119- template <typename Class>
120- void * PythonQtArgumentFrame::establishPersistentPtr (void * alreadyAllocatedPtr, const Class& value)
121- {
122- if (alreadyAllocatedPtr) {
123- *reinterpret_cast <Class*>(alreadyAllocatedPtr) = value;
124- return alreadyAllocatedPtr;
125- } else {
126- QVariant* item = nextVariantPtr ();
127- *item = QVariant (value);
128- return const_cast <void *>(item->constData ());
129- }
130- }
131-
132- template <typename Class, typename ViewClass>
133- void * PythonQtArgumentFrame::establishPersistentViewPtr (void * alreadyAllocatedPtr, const Class& value)
134- {
135- QVariant* itemStore = nextVariantPtr ();
136- *itemStore = QVariant (value);
137- if (alreadyAllocatedPtr) {
138- *reinterpret_cast <ViewClass*>(alreadyAllocatedPtr) =
139- ViewClass (*reinterpret_cast <const Class*>(itemStore->constData ()));
140- return alreadyAllocatedPtr;
141- } else {
142- QVariant* item = nextVariantPtr ();
143- *item = QVariant::fromValue (ViewClass (*reinterpret_cast <const Class*>(itemStore->constData ())));
144- return const_cast <void *>(item->constData ());
145- }
146- }
Original file line number Diff line number Diff line change @@ -122,10 +122,33 @@ class PythonQtArgumentFrame
122122 quint64* nextPODPtr ();
123123
124124 template <typename Class>
125- void * establishPersistentPtr (void * alreadyAllocatedPtr, const Class& value);
126-
125+ void * establishPersistentPtr (void * alreadyAllocatedPtr, const Class& value)
126+ {
127+ if (alreadyAllocatedPtr) {
128+ *reinterpret_cast <Class*>(alreadyAllocatedPtr) = value;
129+ return alreadyAllocatedPtr;
130+ } else {
131+ QVariant* item = nextVariantPtr ();
132+ *item = QVariant (value);
133+ return const_cast <void *>(item->constData ());
134+ }
135+ }
136+
127137 template <typename Class, typename ViewClass>
128- void * establishPersistentViewPtr (void * alreadyAllocatedPtr, const Class& value);
138+ void * establishPersistentViewPtr (void * alreadyAllocatedPtr, const Class& value)
139+ {
140+ QVariant* itemStore = nextVariantPtr ();
141+ *itemStore = QVariant (value);
142+ if (alreadyAllocatedPtr) {
143+ *reinterpret_cast <ViewClass*>(alreadyAllocatedPtr) =
144+ ViewClass (*reinterpret_cast <const Class*>(itemStore->constData ()));
145+ return alreadyAllocatedPtr;
146+ } else {
147+ QVariant* item = nextVariantPtr ();
148+ *item = QVariant::fromValue (ViewClass (*reinterpret_cast <const Class*>(itemStore->constData ())));
149+ return const_cast <void *>(item->constData ());
150+ }
151+ }
129152
130153private:
131154 PythonQtArgumentFrame ();
You can’t perform that action at this time.
0 commit comments