#include "src/codec/SkTiffUtility.h"
#include "include/core/SkData.h"
#include "src/codec/SkCodecPriv.h"
#include <cstddef>
#include <utility>
namespace SkTiff {
constexpr size_t kSizeEntry = …;
constexpr size_t kSizeShort = …;
constexpr size_t kSizeLong = …;
bool ImageFileDirectory::IsValidType(uint16_t type) { … }
size_t ImageFileDirectory::BytesForType(uint16_t type) { … }
static const uint8_t* get_entry_address(const SkData* data,
uint32_t ifdOffset,
uint16_t entryIndex) { … }
static bool validate_ifd(const SkData* data,
bool littleEndian,
uint32_t ifdOffset,
bool allowTruncated,
uint16_t* outNumEntries,
uint32_t* outNextIfdOffset) { … }
bool ImageFileDirectory::ParseHeader(const SkData* data,
bool* outLittleEndian,
uint32_t* outIfdOffset) { … }
std::unique_ptr<ImageFileDirectory> ImageFileDirectory::MakeFromOffset(sk_sp<SkData> data,
bool littleEndian,
uint32_t ifdOffset,
bool allowTruncated) { … }
ImageFileDirectory::ImageFileDirectory(sk_sp<SkData> data,
bool littleEndian,
uint32_t offset,
uint16_t numEntries,
uint32_t nextIfdOffset)
: … { … }
uint16_t ImageFileDirectory::getEntryTag(uint16_t entryIndex) const { … }
bool ImageFileDirectory::getEntryRawData(uint16_t entryIndex,
uint16_t* outTag,
uint16_t* outType,
uint32_t* outCount,
const uint8_t** outData,
size_t* outDataSize) const { … }
sk_sp<SkData> ImageFileDirectory::getEntryUndefinedData(uint16_t entryIndex) const { … }
bool ImageFileDirectory::getEntryValuesGeneric(uint16_t entryIndex,
uint16_t type,
uint32_t count,
void* values) const { … }
}