| 10356 | } |
| 10357 | |
| 10358 | int ParseEXRMultipartHeaderFromFile(EXRHeader ***exr_headers, int *num_headers, |
| 10359 | const EXRVersion *exr_version, |
| 10360 | const char *filename, const char **err) { |
| 10361 | if (exr_headers == NULL || num_headers == NULL || exr_version == NULL || |
| 10362 | filename == NULL) { |
| 10363 | tinyexr::SetErrorMessage( |
| 10364 | "Invalid argument for ParseEXRMultipartHeaderFromFile()", err); |
| 10365 | return TINYEXR_ERROR_INVALID_ARGUMENT; |
| 10366 | } |
| 10367 | |
| 10368 | MemoryMappedFile file(filename); |
| 10369 | if (!file.valid()) { |
| 10370 | tinyexr::SetErrorMessage("Cannot read file " + std::string(filename), err); |
| 10371 | return TINYEXR_ERROR_CANT_OPEN_FILE; |
| 10372 | } |
| 10373 | |
| 10374 | return ParseEXRMultipartHeaderFromMemory( |
| 10375 | exr_headers, num_headers, exr_version, file.data, file.size, err); |
| 10376 | } |
| 10377 | |
| 10378 | // ======================================================================== |
| 10379 | // Refactored loader functions using Reader class for safer memory access |
nothing calls this directly
no test coverage detected