| 198 | } |
| 199 | |
| 200 | bool GetFeatureIndices(std::function<TVector<size_t>()> getFeatureIndices, size_t** indices, size_t* count) { |
| 201 | try { |
| 202 | auto featureIndices = getFeatureIndices(); |
| 203 | *count = featureIndices.size(); |
| 204 | if (!featureIndices.size()) { |
| 205 | *indices = nullptr; |
| 206 | } else { |
| 207 | *indices = (size_t*)malloc(sizeof(size_t) * featureIndices.size()); |
| 208 | if (!*indices) { |
| 209 | throw std::bad_alloc(); |
| 210 | } |
| 211 | |
| 212 | std::copy(featureIndices.begin(), featureIndices.end(), *indices); |
| 213 | } |
| 214 | } catch(...) { |
| 215 | ErrorMessageHolder.Get().Message = CurrentExceptionMessage(); |
| 216 | return false; |
| 217 | } |
| 218 | return true; |
| 219 | } |
| 220 | |
| 221 | } // namespace |
| 222 |
no test coverage detected