diff options
-rw-r--r-- | coin/instructions/common_environment.yaml | 12 | ||||
-rw-r--r-- | sources/pyside6/libpyside/signalmanager.cpp | 12 | ||||
-rw-r--r-- | sources/pyside6/libpyside/signalmanager.h | 4 |
3 files changed, 26 insertions, 2 deletions
diff --git a/coin/instructions/common_environment.yaml b/coin/instructions/common_environment.yaml index adb67b56d..f54eb1ab3 100644 --- a/coin/instructions/common_environment.yaml +++ b/coin/instructions/common_environment.yaml @@ -198,6 +198,18 @@ instructions: property: target.compiler equals_value: ICC_18 - type: EnvironmentVariable + variableName: PYTHON3_PATH + variableValue: "{{ index .Env \"PYTHON3.10.0-64_PATH\"}}" + enable_if: + condition: and + conditions: + - condition: property + property: host.os + equals_value: Windows + - condition: property + property: host.arch + equals_value: X86_64 + - type: EnvironmentVariable variableName: ICC64_18_PATH # Seems a bit hard to maintain variableValue: /opt/intel/compilers_and_libraries_2018.1.163/linux/bin/intel64:/opt/intel/bin enable_if: diff --git a/sources/pyside6/libpyside/signalmanager.cpp b/sources/pyside6/libpyside/signalmanager.cpp index 933edd318..e5f069c86 100644 --- a/sources/pyside6/libpyside/signalmanager.cpp +++ b/sources/pyside6/libpyside/signalmanager.cpp @@ -27,6 +27,7 @@ #include <QtCore/qscopedpointer.h> #include <memory> +#include <utility> using namespace Qt::StringLiterals; @@ -125,6 +126,17 @@ PyObjectWrapper::PyObjectWrapper(const PyObjectWrapper &other) Py_XINCREF(m_me); } +PyObjectWrapper::PyObjectWrapper(PyObjectWrapper &&other) noexcept + : m_me{std::exchange(other.m_me, nullptr)} +{ +} + +PyObjectWrapper &PyObjectWrapper::operator=(PyObjectWrapper &&other) noexcept +{ + m_me = std::exchange(other.m_me, nullptr); + return *this; +} + PyObjectWrapper::~PyObjectWrapper() { // Check that Python is still initialized as sometimes this is called by a static destructor diff --git a/sources/pyside6/libpyside/signalmanager.h b/sources/pyside6/libpyside/signalmanager.h index d5c007dbe..52bb5f1d1 100644 --- a/sources/pyside6/libpyside/signalmanager.h +++ b/sources/pyside6/libpyside/signalmanager.h @@ -22,13 +22,13 @@ namespace PySide class PYSIDE_API PyObjectWrapper { public: - PyObjectWrapper(PyObjectWrapper&&) = delete; - PyObjectWrapper& operator=(PyObjectWrapper &&) = delete; PyObjectWrapper(); explicit PyObjectWrapper(PyObject* me); PyObjectWrapper(const PyObjectWrapper &other); PyObjectWrapper& operator=(const PyObjectWrapper &other); + PyObjectWrapper(PyObjectWrapper&&) noexcept; + PyObjectWrapper &operator=(PyObjectWrapper &&) noexcept; void reset(PyObject *o); |