Skip to content

Commit 476cba2

Browse files
author
Jonathan Brandmeyer
committed
Changes to support MSVC 6.0.
[SVN r22430]
1 parent 115f9f0 commit 476cba2

File tree

3 files changed

+20
-10
lines changed

3 files changed

+20
-10
lines changed

include/boost/python/slice.hpp

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,26 @@ namespace boost { namespace python {
1818

1919
class slice : public object
2020
{
21+
private:
22+
// Helper function to work around bugs in MSVC 6
23+
BOOST_PYTHON_DECL
24+
static object new_slice(PyObject*, PyObject*, PyObject*);
25+
2126
public:
2227
// Equivalent to slice(::)
28+
BOOST_PYTHON_DECL
2329
slice();
2430

2531
// Each argument must be int, slice_nil, or implicitly convertable to int
2632
template<typename Integer1, typename Integer2>
2733
slice( Integer1 start, Integer2 stop)
28-
: object( boost::python::detail::new_reference(
29-
PySlice_New( object(start).ptr(), object(stop).ptr(), NULL)))
34+
: object( new_slice( object(start).ptr(), object(stop).ptr(), NULL))
3035
{}
3136

3237
template<typename Integer1, typename Integer2, typename Integer3>
3338
slice( Integer1 start, Integer2 stop, Integer3 stride)
34-
: object( boost::python::detail::new_reference(
35-
PySlice_New( object(start).ptr(), object(stop).ptr(),
36-
object(stride).ptr())))
39+
: object(
40+
new_slice( object(start).ptr(), object(stop).ptr(), object(stride).ptr()))
3741
{}
3842

3943
// Get the Python objects associated with the slice. In principle, these

src/slice.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@
88

99
namespace boost { namespace python {
1010

11+
object
12+
slice::new_slice(PyObject* start, PyObject* stop, PyObject* step)
13+
{
14+
return object(detail::new_reference( PySlice_New(start, stop, step)));
15+
}
16+
1117
slice::slice()
1218
: object( boost::python::detail::new_reference(
1319
PySlice_New( NULL, NULL, NULL)))

test/slice.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,17 +37,17 @@ bool check_string_rich_slice()
3737
bool check_numeric_array_rich_slice()
3838
{
3939
using numeric::array;
40-
object original = array( make_tuple( make_tuple( 11, 12, 13, 14),
40+
array original = array( make_tuple( make_tuple( 11, 12, 13, 14),
4141
make_tuple( 21, 22, 23, 24),
4242
make_tuple( 31, 32, 33, 34),
4343
make_tuple( 41, 42, 43, 44)));
44-
object upper_left_quadrant = array( make_tuple( make_tuple( 11, 12),
44+
array upper_left_quadrant = array( make_tuple( make_tuple( 11, 12),
4545
make_tuple( 21, 22)));
46-
object odd_cells = array( make_tuple( make_tuple( 11, 13),
46+
array odd_cells = array( make_tuple( make_tuple( 11, 13),
4747
make_tuple( 31, 33)));
48-
object even_cells = array( make_tuple( make_tuple( 22, 24),
48+
array even_cells = array( make_tuple( make_tuple( 22, 24),
4949
make_tuple( 42, 44)));
50-
object lower_right_quadrant_reversed = array(
50+
array lower_right_quadrant_reversed = array(
5151
make_tuple( make_tuple(44, 43),
5252
make_tuple(34, 33)));
5353

0 commit comments

Comments
 (0)