Commit 6b5dc974f7fb1a2293f889654ed4733ddfebf2e7

Authored by Jürgen Knödlseder
1 parent 6c98f13f

Correct container slicing code for Python >= 3.2

inst/cta/pyext/GCTAEventList.i
... ... @@ -110,7 +110,11 @@ public:
110 110 Py_ssize_t stop = 0;
111 111 Py_ssize_t step = 0;
112 112 Py_ssize_t len = self->size();
  113 + #if PY_VERSION_HEX >= 0x03020000
  114 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) {
  115 + #else
113 116 if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) {
  117 + #endif
114 118 GCTAEventList* list = new GCTAEventList;
115 119 if (step > 0) {
116 120 for (int i = (int)start; i < (int)stop; i += (int)step) {
... ...
inst/lat/pyext/GLATEventList.i
... ... @@ -88,7 +88,11 @@ public:
88 88 Py_ssize_t stop = 0;
89 89 Py_ssize_t step = 0;
90 90 Py_ssize_t len = self->size();
  91 + #if PY_VERSION_HEX >= 0x03020000
  92 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) {
  93 + #else
91 94 if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) {
  95 + #endif
92 96 GLATEventList* list = new GLATEventList;
93 97 if (step > 0) {
94 98 for (int i = (int)start; i < (int)stop; i += (int)step) {
... ...
pyext/GApplicationPars.i
... ... @@ -97,7 +97,11 @@ public:
97 97 Py_ssize_t stop = 0;
98 98 Py_ssize_t step = 0;
99 99 Py_ssize_t len = self->size();
  100 + #if PY_VERSION_HEX >= 0x03020000
  101 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) {
  102 + #else
100 103 if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) {
  104 + #endif
101 105 GApplicationPars* pars = new GApplicationPars;
102 106 if (step > 0) {
103 107 for (int i = (int)start; i < (int)stop; i += (int)step) {
... ...
pyext/GEbounds.i
... ... @@ -99,7 +99,11 @@ public:
99 99 Py_ssize_t stop = 0;
100 100 Py_ssize_t step = 0;
101 101 Py_ssize_t len = self->size();
  102 + #if PY_VERSION_HEX >= 0x03020000
  103 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) {
  104 + #else
102 105 if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) {
  106 + #endif
103 107 GEbounds* ebounds = new GEbounds;
104 108 if (step > 0) {
105 109 for (int i = (int)start; i < (int)stop; i += (int)step) {
... ...
pyext/GEnergies.i
... ... @@ -97,7 +97,11 @@ public:
97 97 Py_ssize_t stop = 0;
98 98 Py_ssize_t step = 0;
99 99 Py_ssize_t len = self->size();
  100 + #if PY_VERSION_HEX >= 0x03020000
  101 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) {
  102 + #else
100 103 if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) {
  104 + #endif
101 105 GEnergies* energies = new GEnergies;
102 106 if (step > 0) {
103 107 for (int i = (int)start; i < (int)stop; i += (int)step) {
... ...
pyext/GFits.i
... ... @@ -123,7 +123,11 @@ public:
123 123 Py_ssize_t stop = 0;
124 124 Py_ssize_t step = 0;
125 125 Py_ssize_t len = self->size();
  126 + #if PY_VERSION_HEX >= 0x03020000
  127 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) {
  128 + #else
126 129 if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) {
  130 + #endif
127 131 GFits* fits = new GFits;
128 132 if (step > 0) {
129 133 for (int i = (int)start; i < (int)stop; i += (int)step) {
... ...
pyext/GFitsHeader.i
... ... @@ -98,7 +98,11 @@ public:
98 98 Py_ssize_t stop = 0;
99 99 Py_ssize_t step = 0;
100 100 Py_ssize_t len = self->size();
  101 + #if PY_VERSION_HEX >= 0x03020000
  102 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) {
  103 + #else
101 104 if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) {
  105 + #endif
102 106 GFitsHeader* header = new GFitsHeader;
103 107 if (step > 0) {
104 108 for (int i = (int)start; i < (int)stop; i += (int)step) {
... ...
pyext/GGti.i
... ... @@ -91,7 +91,11 @@ public:
91 91 Py_ssize_t stop = 0;
92 92 Py_ssize_t step = 0;
93 93 Py_ssize_t len = self->size();
  94 + #if PY_VERSION_HEX >= 0x03020000
  95 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) {
  96 + #else
94 97 if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) {
  98 + #endif
95 99 GGti* gti = new GGti;
96 100 if (step > 0) {
97 101 for (int i = (int)start; i < (int)stop; i += (int)step) {
... ...
pyext/GModels.i
... ... @@ -101,7 +101,11 @@ public:
101 101 Py_ssize_t stop = 0;
102 102 Py_ssize_t step = 0;
103 103 Py_ssize_t len = self->size();
  104 + #if PY_VERSION_HEX >= 0x03020000
  105 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) {
  106 + #else
104 107 if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) {
  108 + #endif
105 109 GModels* models = new GModels;
106 110 if (step > 0) {
107 111 for (int i = (int)start; i < (int)stop; i += (int)step) {
... ...
pyext/GNodeArray.i
... ... @@ -104,7 +104,11 @@ public:
104 104 Py_ssize_t stop = 0;
105 105 Py_ssize_t step = 0;
106 106 Py_ssize_t len = self->size();
  107 + #if PY_VERSION_HEX >= 0x03020000
  108 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) {
  109 + #else
107 110 if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) {
  111 + #endif
108 112 GNodeArray* nodes = new GNodeArray;
109 113 if (step > 0) {
110 114 for (int i = (int)start; i < (int)stop; i += (int)step) {
... ...
pyext/GObservations.i
... ... @@ -126,7 +126,11 @@ typedef GObservations::likelihood likelihood;
126 126 Py_ssize_t stop = 0;
127 127 Py_ssize_t step = 0;
128 128 Py_ssize_t len = self->size();
  129 + #if PY_VERSION_HEX >= 0x03020000
  130 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) {
  131 + #else
129 132 if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) {
  133 + #endif
130 134 GObservations* obs = new GObservations;
131 135 obs->models(self->models()); // Copy over model container
132 136 if (step > 0) {
... ...
pyext/GOptimizerPars.i
... ... @@ -93,7 +93,11 @@ public:
93 93 Py_ssize_t stop = 0;
94 94 Py_ssize_t step = 0;
95 95 Py_ssize_t len = self->size();
  96 + #if PY_VERSION_HEX >= 0x03020000
  97 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) {
  98 + #else
96 99 if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) {
  100 + #endif
97 101 GOptimizerPars* pars = new GOptimizerPars;
98 102 if (step > 0) {
99 103 for (int i = (int)start; i < (int)stop; i += (int)step) {
... ...
pyext/GPhases.i
... ... @@ -69,7 +69,11 @@ public:
69 69 Py_ssize_t stop = 0;
70 70 Py_ssize_t step = 0;
71 71 Py_ssize_t len = self->size();
  72 + #if PY_VERSION_HEX >= 0x03020000
  73 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) {
  74 + #else
72 75 if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) {
  76 + #endif
73 77 GPhases* phases = new GPhases;
74 78 if (step > 0) {
75 79 for (int i = (int)start; i < (int)stop; i += (int)step) {
... ...
pyext/GPhotons.i
... ... @@ -78,7 +78,11 @@ public:
78 78 Py_ssize_t stop = 0;
79 79 Py_ssize_t step = 0;
80 80 Py_ssize_t len = self->size();
  81 + #if PY_VERSION_HEX >= 0x03020000
  82 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) {
  83 + #else
81 84 if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) {
  85 + #endif
82 86 GPhotons* photons = new GPhotons;
83 87 if (step > 0) {
84 88 for (int i = (int)start; i < (int)stop; i += (int)step) {
... ...
pyext/GSkyRegions.i
... ... @@ -86,7 +86,11 @@ public:
86 86 Py_ssize_t stop = 0;
87 87 Py_ssize_t step = 0;
88 88 Py_ssize_t len = self->size();
  89 + #if PY_VERSION_HEX >= 0x03020000
  90 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) {
  91 + #else
89 92 if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) {
  93 + #endif
90 94 GSkyRegions* regions = new GSkyRegions;
91 95 if (step > 0) {
92 96 for (int i = (int)start; i < (int)stop; i += (int)step) {
... ...
pyext/GTestSuites.i
... ... @@ -91,7 +91,11 @@ public:
91 91 Py_ssize_t stop = 0;
92 92 Py_ssize_t step = 0;
93 93 Py_ssize_t len = self->size();
  94 + #if PY_VERSION_HEX >= 0x03020000
  95 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) {
  96 + #else
94 97 if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) {
  98 + #endif
95 99 GTestSuites* tests = new GTestSuites(self->name());
96 100 if (step > 0) {
97 101 for (int i = (int)start; i < (int)stop; i += (int)step) {
... ...
pyext/GTimes.i
... ... @@ -80,7 +80,11 @@ public:
80 80 Py_ssize_t stop = 0;
81 81 Py_ssize_t step = 0;
82 82 Py_ssize_t len = self->size();
  83 + #if PY_VERSION_HEX >= 0x03020000
  84 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) {
  85 + #else
83 86 if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) {
  87 + #endif
84 88 GTimes* times = new GTimes;
85 89 if (step > 0) {
86 90 for (int i = (int)start; i < (int)stop; i += (int)step) {
... ...
pyext/GXml.i
... ... @@ -92,7 +92,11 @@ public:
92 92 Py_ssize_t stop = 0;
93 93 Py_ssize_t step = 0;
94 94 Py_ssize_t len = self->size();
  95 + #if PY_VERSION_HEX >= 0x03020000
  96 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) {
  97 + #else
95 98 if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) {
  99 + #endif
96 100 GXml* xml = new GXml;
97 101 if (step > 0) {
98 102 for (int i = (int)start; i < (int)stop; i += (int)step) {
... ...
pyext/GXmlElement.i
... ... @@ -93,7 +93,11 @@ public:
93 93 Py_ssize_t stop = 0;
94 94 Py_ssize_t step = 0;
95 95 Py_ssize_t len = self->size();
  96 + #if PY_VERSION_HEX >= 0x03020000
  97 + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) {
  98 + #else
96 99 if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) {
  100 + #endif
97 101 GXmlElement* element = new GXmlElement;
98 102 if (step > 0) {
99 103 for (int i = (int)start; i < (int)stop; i += (int)step) {
... ...