diff options
| author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-03-02 14:15:55 +0100 |
|---|---|---|
| committer | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-03-03 11:16:01 +0100 |
| commit | 4d4234e75ce10895bc80df8be89f2ee28b2605b5 (patch) | |
| tree | 64b088d7406b964c4241e8953eb90bcbd64c0723 /sources/pyside6 | |
| parent | e49516c724a11ac084372b5f0d7d62a35af363cc (diff) | |
Fix QScatterDataProxy::resetArray() crash
Pass an allocated array to the function, similar to
00228b7605f63c58ab979362ecaa2bef96c7dc67 for QSurfaceDataProxy.
A specific code snippet is used since it needs to operate
on a pointer (QList* instead of the custom type for the 2-dimensional
types of surface/bar).
Task-number: PYSIDE-1438
Task-number: PYSIDE-2206
Pick-to: 6.4 6.2
Change-Id: I20b0f67ace4090e21c13995f94e22e37fb5fa940
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
Diffstat (limited to 'sources/pyside6')
| -rw-r--r-- | sources/pyside6/PySide6/QtDataVisualization/typesystem_datavisualization.xml | 11 | ||||
| -rw-r--r-- | sources/pyside6/PySide6/glue/qtdatavisualization.cpp | 4 |
2 files changed, 10 insertions, 5 deletions
diff --git a/sources/pyside6/PySide6/QtDataVisualization/typesystem_datavisualization.xml b/sources/pyside6/PySide6/QtDataVisualization/typesystem_datavisualization.xml index c99a03012..50ea5ed22 100644 --- a/sources/pyside6/PySide6/QtDataVisualization/typesystem_datavisualization.xml +++ b/sources/pyside6/PySide6/QtDataVisualization/typesystem_datavisualization.xml @@ -226,11 +226,12 @@ </object-type> <value-type name="QScatterDataItem"/> <object-type name="QScatterDataProxy"> - <modify-function signature="resetArray(QList<QScatterDataItem>*)"> - <modify-argument index="1"> - <parent index="this" action="add"/> - </modify-argument> - </modify-function> + <modify-function signature="resetArray(QList<QScatterDataItem>*)" + remove="all"/> + <add-function signature="resetArray(QList<QScatterDataItem>*)"> + <inject-code class="target" position="beginning" file="../glue/qtdatavisualization.cpp" + snippet="scatterdataproxy-resetarray"/> + </add-function> <modify-function signature="addItem(const QScatterDataItem&)"> <modify-argument index="1"> <parent index="this" action="add"/> diff --git a/sources/pyside6/PySide6/glue/qtdatavisualization.cpp b/sources/pyside6/PySide6/glue/qtdatavisualization.cpp index 92ff9cbc9..3a179cb17 100644 --- a/sources/pyside6/PySide6/glue/qtdatavisualization.cpp +++ b/sources/pyside6/PySide6/glue/qtdatavisualization.cpp @@ -52,6 +52,10 @@ using ListType = decltype(%1); %CPPSELF.resetArray(new ListType(%1), %2, %3); // @snippet dataproxy-resetarray2 +// @snippet scatterdataproxy-resetarray +%CPPSELF.resetArray(new QScatterDataArray(*%1)); +// @snippet scatterdataproxy-resetarray + // @snippet qsurfacedataproxy-resetarraynp auto *data = QtDataVisualizationHelper::surfaceDataFromNp(%1, %2, %3, %4, %5); // %CPPSELF.%FUNCTION_NAME |
