diff options
author | Friedemann Kleint <Friedemann.Kleint@qt.io> | 2023-03-02 14:15:55 +0100 |
---|---|---|
committer | Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> | 2023-03-03 14:02:48 +0000 |
commit | 52d7f82e8adc7423a54445246fe7df3b2cc31529 (patch) | |
tree | cd334021891db3452b1121a822c9a64ba1d04b44 | |
parent | 1d537e8b068319ba90a1bbf2e328c8a9d687e04b (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
Change-Id: I20b0f67ace4090e21c13995f94e22e37fb5fa940
Reviewed-by: Shyamnath Premnadh <Shyamnath.Premnadh@qt.io>
(cherry picked from commit 4d4234e75ce10895bc80df8be89f2ee28b2605b5)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
-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 531c63575..14faf69f6 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 |