Commit 07b3b17c authored by Koch's avatar Koch
Browse files

fix: use std::vector for dynamically sized array in gather.cpp

parent b51c22a4
...@@ -3,6 +3,8 @@ ...@@ -3,6 +3,8 @@
#include "compat.h" #include "compat.h"
#include "index_info.h" #include "index_info.h"
#include <vector>
#define CHECK_CPU(x) AT_ASSERTM(!x.type().is_cuda(), #x " must be CPU tensor") #define CHECK_CPU(x) AT_ASSERTM(!x.type().is_cuda(), #x " must be CPU tensor")
at::Tensor gather_csr(at::Tensor src, at::Tensor indptr, at::Tensor gather_csr(at::Tensor src, at::Tensor indptr,
...@@ -43,7 +45,7 @@ at::Tensor gather_csr(at::Tensor src, at::Tensor indptr, ...@@ -43,7 +45,7 @@ at::Tensor gather_csr(at::Tensor src, at::Tensor indptr,
auto src_data = src.DATA_PTR<scalar_t>(); auto src_data = src.DATA_PTR<scalar_t>();
auto out_data = out.DATA_PTR<scalar_t>(); auto out_data = out.DATA_PTR<scalar_t>();
scalar_t vals[K]; std::vector<scalar_t> vals(K);
int64_t row_start, row_end; int64_t row_start, row_end;
for (int n = 0; n < N; n++) { for (int n = 0; n < N; n++) {
int offset = IndexPtrToOffset<int64_t>::get(n, indptr_info); int offset = IndexPtrToOffset<int64_t>::get(n, indptr_info);
...@@ -104,7 +106,7 @@ at::Tensor gather_coo(at::Tensor src, at::Tensor index, ...@@ -104,7 +106,7 @@ at::Tensor gather_coo(at::Tensor src, at::Tensor index,
auto src_data = src.DATA_PTR<scalar_t>(); auto src_data = src.DATA_PTR<scalar_t>();
auto out_data = out.DATA_PTR<scalar_t>(); auto out_data = out.DATA_PTR<scalar_t>();
scalar_t vals[K]; std::vector<scalar_t> vals(K);
int64_t idx, next_idx; int64_t idx, next_idx;
for (int e_1 = 0; e_1 < E_1; e_1++) { for (int e_1 = 0; e_1 < E_1; e_1++) {
int offset = IndexToOffset<int64_t>::get(e_1 * E_2, index_info); int offset = IndexToOffset<int64_t>::get(e_1 * E_2, index_info);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment