| 7003 | }; |
| 7004 | |
| 7005 | int LoadEXRImageFromFile(EXRImage *exr_image, const EXRHeader *exr_header, |
| 7006 | const char *filename, const char **err) { |
| 7007 | if (exr_image == NULL) { |
| 7008 | tinyexr::SetErrorMessage("Invalid argument for LoadEXRImageFromFile", err); |
| 7009 | return TINYEXR_ERROR_INVALID_ARGUMENT; |
| 7010 | } |
| 7011 | |
| 7012 | MemoryMappedFile file(filename); |
| 7013 | if (!file.valid()) { |
| 7014 | tinyexr::SetErrorMessage("Cannot read file " + std::string(filename), err); |
| 7015 | return TINYEXR_ERROR_CANT_OPEN_FILE; |
| 7016 | } |
| 7017 | |
| 7018 | if (file.size < 16) { |
| 7019 | tinyexr::SetErrorMessage("File size too short : " + std::string(filename), |
| 7020 | err); |
| 7021 | return TINYEXR_ERROR_INVALID_FILE; |
| 7022 | } |
| 7023 | |
| 7024 | return LoadEXRImageFromMemory(exr_image, exr_header, file.data, file.size, |
| 7025 | err); |
| 7026 | } |
| 7027 | |
| 7028 | int LoadEXRImageFromMemory(EXRImage *exr_image, const EXRHeader *exr_header, |
| 7029 | const unsigned char *memory, const size_t size, |
no test coverage detected