From 6b5dc974f7fb1a2293f889654ed4733ddfebf2e7 Mon Sep 17 00:00:00 2001 From: Jürgen Knödlseder Date: Mon, 24 Jul 2017 09:16:33 +0200 Subject: [PATCH] Correct container slicing code for Python >= 3.2 --- inst/cta/pyext/GCTAEventList.i | 4 ++++ inst/lat/pyext/GLATEventList.i | 4 ++++ pyext/GApplicationPars.i | 4 ++++ pyext/GEbounds.i | 4 ++++ pyext/GEnergies.i | 4 ++++ pyext/GFits.i | 4 ++++ pyext/GFitsHeader.i | 4 ++++ pyext/GGti.i | 4 ++++ pyext/GModels.i | 4 ++++ pyext/GNodeArray.i | 4 ++++ pyext/GObservations.i | 4 ++++ pyext/GOptimizerPars.i | 4 ++++ pyext/GPhases.i | 4 ++++ pyext/GPhotons.i | 4 ++++ pyext/GSkyRegions.i | 4 ++++ pyext/GTestSuites.i | 4 ++++ pyext/GTimes.i | 4 ++++ pyext/GXml.i | 4 ++++ pyext/GXmlElement.i | 4 ++++ 19 files changed, 76 insertions(+), 0 deletions(-) diff --git a/inst/cta/pyext/GCTAEventList.i b/inst/cta/pyext/GCTAEventList.i index c77f7bf..a9ae263 100644 --- a/inst/cta/pyext/GCTAEventList.i +++ b/inst/cta/pyext/GCTAEventList.i @@ -110,7 +110,11 @@ public: Py_ssize_t stop = 0; Py_ssize_t step = 0; Py_ssize_t len = self->size(); + #if PY_VERSION_HEX >= 0x03020000 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { + #else if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { + #endif GCTAEventList* list = new GCTAEventList; if (step > 0) { for (int i = (int)start; i < (int)stop; i += (int)step) { diff --git a/inst/lat/pyext/GLATEventList.i b/inst/lat/pyext/GLATEventList.i index 7b919f4..9143ce5 100644 --- a/inst/lat/pyext/GLATEventList.i +++ b/inst/lat/pyext/GLATEventList.i @@ -88,7 +88,11 @@ public: Py_ssize_t stop = 0; Py_ssize_t step = 0; Py_ssize_t len = self->size(); + #if PY_VERSION_HEX >= 0x03020000 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { + #else if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { + #endif GLATEventList* list = new GLATEventList; if (step > 0) { for (int i = (int)start; i < (int)stop; i += (int)step) { diff --git a/pyext/GApplicationPars.i b/pyext/GApplicationPars.i index eed4773..16ab03e 100644 --- a/pyext/GApplicationPars.i +++ b/pyext/GApplicationPars.i @@ -97,7 +97,11 @@ public: Py_ssize_t stop = 0; Py_ssize_t step = 0; Py_ssize_t len = self->size(); + #if PY_VERSION_HEX >= 0x03020000 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { + #else if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { + #endif GApplicationPars* pars = new GApplicationPars; if (step > 0) { for (int i = (int)start; i < (int)stop; i += (int)step) { diff --git a/pyext/GEbounds.i b/pyext/GEbounds.i index 4c52ef3..a3cf625 100644 --- a/pyext/GEbounds.i +++ b/pyext/GEbounds.i @@ -99,7 +99,11 @@ public: Py_ssize_t stop = 0; Py_ssize_t step = 0; Py_ssize_t len = self->size(); + #if PY_VERSION_HEX >= 0x03020000 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { + #else if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { + #endif GEbounds* ebounds = new GEbounds; if (step > 0) { for (int i = (int)start; i < (int)stop; i += (int)step) { diff --git a/pyext/GEnergies.i b/pyext/GEnergies.i index 03a3f7a..ff3340a 100644 --- a/pyext/GEnergies.i +++ b/pyext/GEnergies.i @@ -97,7 +97,11 @@ public: Py_ssize_t stop = 0; Py_ssize_t step = 0; Py_ssize_t len = self->size(); + #if PY_VERSION_HEX >= 0x03020000 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { + #else if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { + #endif GEnergies* energies = new GEnergies; if (step > 0) { for (int i = (int)start; i < (int)stop; i += (int)step) { diff --git a/pyext/GFits.i b/pyext/GFits.i index ece9135..f832534 100644 --- a/pyext/GFits.i +++ b/pyext/GFits.i @@ -123,7 +123,11 @@ public: Py_ssize_t stop = 0; Py_ssize_t step = 0; Py_ssize_t len = self->size(); + #if PY_VERSION_HEX >= 0x03020000 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { + #else if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { + #endif GFits* fits = new GFits; if (step > 0) { for (int i = (int)start; i < (int)stop; i += (int)step) { diff --git a/pyext/GFitsHeader.i b/pyext/GFitsHeader.i index 8ec041c..e6c11b4 100644 --- a/pyext/GFitsHeader.i +++ b/pyext/GFitsHeader.i @@ -98,7 +98,11 @@ public: Py_ssize_t stop = 0; Py_ssize_t step = 0; Py_ssize_t len = self->size(); + #if PY_VERSION_HEX >= 0x03020000 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { + #else if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { + #endif GFitsHeader* header = new GFitsHeader; if (step > 0) { for (int i = (int)start; i < (int)stop; i += (int)step) { diff --git a/pyext/GGti.i b/pyext/GGti.i index dda5a20..ba24a4d 100644 --- a/pyext/GGti.i +++ b/pyext/GGti.i @@ -91,7 +91,11 @@ public: Py_ssize_t stop = 0; Py_ssize_t step = 0; Py_ssize_t len = self->size(); + #if PY_VERSION_HEX >= 0x03020000 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { + #else if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { + #endif GGti* gti = new GGti; if (step > 0) { for (int i = (int)start; i < (int)stop; i += (int)step) { diff --git a/pyext/GModels.i b/pyext/GModels.i index 8bae192..25183bc 100644 --- a/pyext/GModels.i +++ b/pyext/GModels.i @@ -101,7 +101,11 @@ public: Py_ssize_t stop = 0; Py_ssize_t step = 0; Py_ssize_t len = self->size(); + #if PY_VERSION_HEX >= 0x03020000 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { + #else if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { + #endif GModels* models = new GModels; if (step > 0) { for (int i = (int)start; i < (int)stop; i += (int)step) { diff --git a/pyext/GNodeArray.i b/pyext/GNodeArray.i index ac1c921..e0e665a 100644 --- a/pyext/GNodeArray.i +++ b/pyext/GNodeArray.i @@ -104,7 +104,11 @@ public: Py_ssize_t stop = 0; Py_ssize_t step = 0; Py_ssize_t len = self->size(); + #if PY_VERSION_HEX >= 0x03020000 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { + #else if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { + #endif GNodeArray* nodes = new GNodeArray; if (step > 0) { for (int i = (int)start; i < (int)stop; i += (int)step) { diff --git a/pyext/GObservations.i b/pyext/GObservations.i index c25f423..7a80ce9 100644 --- a/pyext/GObservations.i +++ b/pyext/GObservations.i @@ -126,7 +126,11 @@ typedef GObservations::likelihood likelihood; Py_ssize_t stop = 0; Py_ssize_t step = 0; Py_ssize_t len = self->size(); + #if PY_VERSION_HEX >= 0x03020000 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { + #else if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { + #endif GObservations* obs = new GObservations; obs->models(self->models()); // Copy over model container if (step > 0) { diff --git a/pyext/GOptimizerPars.i b/pyext/GOptimizerPars.i index ed2f7d4..4aeb692 100644 --- a/pyext/GOptimizerPars.i +++ b/pyext/GOptimizerPars.i @@ -93,7 +93,11 @@ public: Py_ssize_t stop = 0; Py_ssize_t step = 0; Py_ssize_t len = self->size(); + #if PY_VERSION_HEX >= 0x03020000 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { + #else if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { + #endif GOptimizerPars* pars = new GOptimizerPars; if (step > 0) { for (int i = (int)start; i < (int)stop; i += (int)step) { diff --git a/pyext/GPhases.i b/pyext/GPhases.i index eb62b29..d7d3a07 100644 --- a/pyext/GPhases.i +++ b/pyext/GPhases.i @@ -69,7 +69,11 @@ public: Py_ssize_t stop = 0; Py_ssize_t step = 0; Py_ssize_t len = self->size(); + #if PY_VERSION_HEX >= 0x03020000 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { + #else if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { + #endif GPhases* phases = new GPhases; if (step > 0) { for (int i = (int)start; i < (int)stop; i += (int)step) { diff --git a/pyext/GPhotons.i b/pyext/GPhotons.i index fc3eab5..8dc9c6f 100644 --- a/pyext/GPhotons.i +++ b/pyext/GPhotons.i @@ -78,7 +78,11 @@ public: Py_ssize_t stop = 0; Py_ssize_t step = 0; Py_ssize_t len = self->size(); + #if PY_VERSION_HEX >= 0x03020000 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { + #else if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { + #endif GPhotons* photons = new GPhotons; if (step > 0) { for (int i = (int)start; i < (int)stop; i += (int)step) { diff --git a/pyext/GSkyRegions.i b/pyext/GSkyRegions.i index 930ed56..daf9c7f 100644 --- a/pyext/GSkyRegions.i +++ b/pyext/GSkyRegions.i @@ -86,7 +86,11 @@ public: Py_ssize_t stop = 0; Py_ssize_t step = 0; Py_ssize_t len = self->size(); + #if PY_VERSION_HEX >= 0x03020000 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { + #else if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { + #endif GSkyRegions* regions = new GSkyRegions; if (step > 0) { for (int i = (int)start; i < (int)stop; i += (int)step) { diff --git a/pyext/GTestSuites.i b/pyext/GTestSuites.i index 8a1e360..add21d1 100644 --- a/pyext/GTestSuites.i +++ b/pyext/GTestSuites.i @@ -91,7 +91,11 @@ public: Py_ssize_t stop = 0; Py_ssize_t step = 0; Py_ssize_t len = self->size(); + #if PY_VERSION_HEX >= 0x03020000 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { + #else if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { + #endif GTestSuites* tests = new GTestSuites(self->name()); if (step > 0) { for (int i = (int)start; i < (int)stop; i += (int)step) { diff --git a/pyext/GTimes.i b/pyext/GTimes.i index 0eddf31..bfc3d1a 100644 --- a/pyext/GTimes.i +++ b/pyext/GTimes.i @@ -80,7 +80,11 @@ public: Py_ssize_t stop = 0; Py_ssize_t step = 0; Py_ssize_t len = self->size(); + #if PY_VERSION_HEX >= 0x03020000 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { + #else if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { + #endif GTimes* times = new GTimes; if (step > 0) { for (int i = (int)start; i < (int)stop; i += (int)step) { diff --git a/pyext/GXml.i b/pyext/GXml.i index 1c1046e..f16f1c7 100644 --- a/pyext/GXml.i +++ b/pyext/GXml.i @@ -92,7 +92,11 @@ public: Py_ssize_t stop = 0; Py_ssize_t step = 0; Py_ssize_t len = self->size(); + #if PY_VERSION_HEX >= 0x03020000 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { + #else if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { + #endif GXml* xml = new GXml; if (step > 0) { for (int i = (int)start; i < (int)stop; i += (int)step) { diff --git a/pyext/GXmlElement.i b/pyext/GXmlElement.i index 76a0b6d..e169380 100644 --- a/pyext/GXmlElement.i +++ b/pyext/GXmlElement.i @@ -93,7 +93,11 @@ public: Py_ssize_t stop = 0; Py_ssize_t step = 0; Py_ssize_t len = self->size(); + #if PY_VERSION_HEX >= 0x03020000 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { + #else if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { + #endif GXmlElement* element = new GXmlElement; if (step > 0) { for (int i = (int)start; i < (int)stop; i += (int)step) { -- libgit2 0.21.4