mirror of
https://github.com/qgis/QGIS.git
synced 2025-03-08 00:02:35 -05:00
Deprecate QgsGeometry::set for usage in Python
When a new QgsAbstractGeometry is set on a geometry object, the previous child is deleted. If the previous object was constructed by Python, it's wrapper will still be alive for as long as the QgsGeometry is alive. If a new QgsAbstractGeometry is constructed at the same memory address as the old one, the wrapper will be reused with wrong type (and other) information, leading to all kind of weird issues. See also https://www.riverbankcomputing.com/pipermail/pyqt/2019-January/041251.html
This commit is contained in:
parent
4a44306700
commit
612576ca8e
@ -133,6 +133,12 @@ Sets the underlying geometry store. Ownership of geometry is transferred.
|
||||
|
||||
In QGIS 2.x this method was named setGeometry().
|
||||
|
||||
.. note::
|
||||
|
||||
This method is deprecated for usage in Python and will be removed from Python bindings with QGIS 4.
|
||||
Using this method will confuse Python's memory management and type information system.
|
||||
Better create a new QgsGeometry object instead.
|
||||
|
||||
.. seealso:: :py:func:`get`
|
||||
|
||||
.. seealso:: :py:func:`constGet`
|
||||
|
@ -196,6 +196,9 @@ class CORE_EXPORT QgsGeometry
|
||||
* Sets the underlying geometry store. Ownership of geometry is transferred.
|
||||
*
|
||||
* \note In QGIS 2.x this method was named setGeometry().
|
||||
* \note This method is deprecated for usage in Python and will be removed from Python bindings with QGIS 4.
|
||||
* Using this method will confuse Python's memory management and type information system.
|
||||
* Better create a new QgsGeometry object instead.
|
||||
*
|
||||
* \see get()
|
||||
* \see constGet()
|
||||
|
Loading…
x
Reference in New Issue
Block a user