aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@qt.io>2023-03-02 14:15:55 +0100
committerQt Cherry-pick Bot <cherrypick_bot@qt-project.org>2023-03-03 14:02:48 +0000
commit52d7f82e8adc7423a54445246fe7df3b2cc31529 (patch)
treecd334021891db3452b1121a822c9a64ba1d04b44
parent1d537e8b068319ba90a1bbf2e328c8a9d687e04b (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.xml11
-rw-r--r--sources/pyside6/PySide6/glue/qtdatavisualization.cpp4
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&lt;QScatterDataItem&gt;*)">
- <modify-argument index="1">
- <parent index="this" action="add"/>
- </modify-argument>
- </modify-function>
+ <modify-function signature="resetArray(QList&lt;QScatterDataItem&gt;*)"
+ remove="all"/>
+ <add-function signature="resetArray(QList&lt;QScatterDataItem&gt;*)">
+ <inject-code class="target" position="beginning" file="../glue/qtdatavisualization.cpp"
+ snippet="scatterdataproxy-resetarray"/>
+ </add-function>
<modify-function signature="addItem(const QScatterDataItem&amp;)">
<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