@@ -138,34 +138,37 @@ void check_num_dims(const array_ptr &arr,
138138 const size_t ndim,
139139 const array_names &names)
140140{
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) {
142143 throw py::value_error (" Array " + name_of (arr, names) + " must be " +
143144 std::to_string (ndim) + " D, but got " +
144- std::to_string (arr-> get_ndim () ) + " D." );
145+ std::to_string (arr_n_dim ) + " D." );
145146 }
146147}
147148
148149void check_max_dims (const array_ptr &arr,
149150 const size_t max_ndim,
150151 const array_names &names)
151152{
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) {
153155 throw py::value_error (
154156 " Array " + name_of (arr, names) + " must have no more than " +
155157 std::to_string (max_ndim) + " dimensions, but got " +
156- std::to_string (arr-> get_ndim () ) + " dimensions." );
158+ std::to_string (arr_n_dim ) + " dimensions." );
157159 }
158160}
159161
160162void check_size_at_least (const array_ptr &arr,
161163 const size_t size,
162164 const array_names &names)
163165{
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) {
165168 throw py::value_error (" Array " + name_of (arr, names) +
166169 " 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." );
169172 }
170173}
171174
0 commit comments