| 281 | namespace internal { |
| 282 | |
| 283 | void CloseFromDestructor(FileInterface* file) { |
| 284 | Status st = file->Close(); |
| 285 | if (!st.ok()) { |
| 286 | auto file_type = typeid(*file).name(); |
| 287 | #ifdef NDEBUG |
| 288 | ARROW_LOG(ERROR) << "Error ignored when destroying file of type " << file_type << ": " |
| 289 | << st; |
| 290 | #else |
| 291 | std::stringstream ss; |
| 292 | ss << "When destroying file of type " << file_type << ": " << st.message(); |
| 293 | ARROW_LOG(FATAL) << st.WithMessage(ss.str()); |
| 294 | #endif |
| 295 | } |
| 296 | } |
| 297 | |
| 298 | Result<int64_t> ValidateReadRange(int64_t offset, int64_t size, int64_t file_size) { |
| 299 | if (offset < 0 || size < 0) { |
no test coverage detected