@@ -138,34 +138,37 @@ void check_num_dims(const array_ptr &arr,
138
138
const size_t ndim,
139
139
const array_names &names)
140
140
{
141
- if (arr != nullptr && arr->get_ndim () != ndim) {
141
+ size_t arr_n_dim = arr != nullptr ? arr->get_ndim () : 0 ;
142
+ if (arr != nullptr && arr_n_dim != ndim) {
142
143
throw py::value_error (" Array " + name_of (arr, names) + " must be " +
143
144
std::to_string (ndim) + " D, but got " +
144
- std::to_string (arr-> get_ndim () ) + " D." );
145
+ std::to_string (arr_n_dim ) + " D." );
145
146
}
146
147
}
147
148
148
149
void check_max_dims (const array_ptr &arr,
149
150
const size_t max_ndim,
150
151
const array_names &names)
151
152
{
152
- if (arr != nullptr && arr->get_ndim () > max_ndim) {
153
+ size_t arr_n_dim = arr != nullptr ? arr->get_ndim () : 0 ;
154
+ if (arr != nullptr && arr_n_dim > max_ndim) {
153
155
throw py::value_error (
154
156
" Array " + name_of (arr, names) + " must have no more than " +
155
157
std::to_string (max_ndim) + " dimensions, but got " +
156
- std::to_string (arr-> get_ndim () ) + " dimensions." );
158
+ std::to_string (arr_n_dim ) + " dimensions." );
157
159
}
158
160
}
159
161
160
162
void check_size_at_least (const array_ptr &arr,
161
163
const size_t size,
162
164
const array_names &names)
163
165
{
164
- if (arr != nullptr && arr->get_size () < size) {
166
+ size_t arr_size = arr != nullptr ? arr->get_size () : 0 ;
167
+ if (arr != nullptr && arr_size < size) {
165
168
throw py::value_error (" Array " + name_of (arr, names) +
166
169
" must have at least " + std::to_string (size) +
167
- " elements, but got " +
168
- std::to_string (arr-> get_size ()) + " elements." );
170
+ " elements, but got " + std::to_string (arr_size) +
171
+ " elements." );
169
172
}
170
173
}
171
174
0 commit comments