Skip to content

Commit

Permalink
Use Py_ssize_t in python bindings (#1678)
Browse files Browse the repository at this point in the history
* Use Py_ssize_t in python bindings

* Args passed to std::max must be same type
  • Loading branch information
zcbenz authored Dec 9, 2024
1 parent 40c62c1 commit 87d7a25
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
12 changes: 6 additions & 6 deletions python/src/buffer.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,13 @@ std::string buffer_format(const array& a) {

struct buffer_info {
std::string format;
std::vector<ssize_t> shape;
std::vector<ssize_t> strides;
std::vector<Py_ssize_t> shape;
std::vector<Py_ssize_t> strides;

buffer_info(
std::string format,
std::vector<ssize_t> shape_in,
std::vector<ssize_t> strides_in)
std::vector<Py_ssize_t> shape_in,
std::vector<Py_ssize_t> strides_in)
: format(std::move(format)),
shape(std::move(shape_in)),
strides(std::move(strides_in)) {}
Expand Down Expand Up @@ -91,8 +91,8 @@ extern "C" inline int getbuffer(PyObject* obj, Py_buffer* view, int flags) {
a.eval();
}

std::vector<ssize_t> shape(a.shape().begin(), a.shape().end());
std::vector<ssize_t> strides(a.strides().begin(), a.strides().end());
std::vector<Py_ssize_t> shape(a.shape().begin(), a.shape().end());
std::vector<Py_ssize_t> strides(a.strides().begin(), a.strides().end());
for (auto& s : strides) {
s *= a.itemsize();
}
Expand Down
2 changes: 1 addition & 1 deletion python/src/indexing.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -603,7 +603,7 @@ std::tuple<std::vector<array>, array, std::vector<int>> mlx_scatter_args_nd(
}

// Analyse the types of the indices
unsigned long max_dim = 0;
size_t max_dim = 0;
bool arrays_first = false;
int num_none = 0;
int num_slices = 0;
Expand Down

0 comments on commit 87d7a25

Please sign in to comment.