Skip to content

Commit d88411f

Browse files
authored
Merge pull request #99 from Novare/master
fix: use std::vector for dynamically sized array in gather.cpp and segment.cpp
2 parents b51c22a + 1eabf7f commit d88411f

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

cpu/gather.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
#include "compat.h"
44
#include "index_info.h"
55

6+
#include <vector>
7+
68
#define CHECK_CPU(x) AT_ASSERTM(!x.type().is_cuda(), #x " must be CPU tensor")
79

810
at::Tensor gather_csr(at::Tensor src, at::Tensor indptr,
@@ -43,7 +45,7 @@ at::Tensor gather_csr(at::Tensor src, at::Tensor indptr,
4345
auto src_data = src.DATA_PTR<scalar_t>();
4446
auto out_data = out.DATA_PTR<scalar_t>();
4547

46-
scalar_t vals[K];
48+
std::vector<scalar_t> vals(K);
4749
int64_t row_start, row_end;
4850
for (int n = 0; n < N; n++) {
4951
int offset = IndexPtrToOffset<int64_t>::get(n, indptr_info);
@@ -104,7 +106,7 @@ at::Tensor gather_coo(at::Tensor src, at::Tensor index,
104106
auto src_data = src.DATA_PTR<scalar_t>();
105107
auto out_data = out.DATA_PTR<scalar_t>();
106108

107-
scalar_t vals[K];
109+
std::vector<scalar_t> vals(K);
108110
int64_t idx, next_idx;
109111
for (int e_1 = 0; e_1 < E_1; e_1++) {
110112
int offset = IndexToOffset<int64_t>::get(e_1 * E_2, index_info);

cpu/segment.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
#include "compat.h"
44
#include "index_info.h"
55

6+
#include <vector>
7+
68
#define CHECK_CPU(x) AT_ASSERTM(!x.type().is_cuda(), #x " must be CPU tensor")
79

810
enum ReductionType { ADD, MEAN, MIN, MAX };
@@ -123,8 +125,9 @@ segment_csr(at::Tensor src, at::Tensor indptr, at::optional<at::Tensor> out_opt,
123125
auto src_data = src.DATA_PTR<scalar_t>();
124126
auto out_data = out.DATA_PTR<scalar_t>();
125127

126-
scalar_t vals[K];
127-
int64_t row_start, row_end, args[K];
128+
std::vector<scalar_t> vals(K);
129+
int64_t row_start, row_end;
130+
std::vector<int64_t> args(K);
128131
AT_DISPATCH_REDUCTION_TYPES(reduce, [&] {
129132
for (int n = 0; n < N; n++) {
130133
int offset = IndexPtrToOffset<int64_t>::get(n, indptr_info);
@@ -195,8 +198,9 @@ segment_coo(at::Tensor src, at::Tensor index, at::Tensor out,
195198
auto src_data = src.DATA_PTR<scalar_t>();
196199
auto out_data = out.DATA_PTR<scalar_t>();
197200

198-
scalar_t vals[K];
199-
int64_t idx, next_idx, row_start, args[K];
201+
std::vector<scalar_t> vals(K);
202+
int64_t idx, next_idx, row_start;
203+
std::vector<int64_t> args(K);
200204
AT_DISPATCH_REDUCTION_TYPES(reduce, [&] {
201205
for (int e_1 = 0; e_1 < E_1; e_1++) {
202206
int offset = IndexToOffset<int64_t>::get(e_1 * E_2, index_info);

0 commit comments

Comments
 (0)