private:
BinaryByteStream BBS;
- ErrorOr<const coff_resource_dir_table &> getTableAtOffset(uint32_t Offset);
- ErrorOr<ArrayRef<UTF16>> getDirStringAtOffset(uint32_t Offset);
+ Expected<const coff_resource_dir_table &> getTableAtOffset(uint32_t Offset);
+ Expected<ArrayRef<UTF16>> getDirStringAtOffset(uint32_t Offset);
};
// Corresponds to `_FPO_DATA` structure in the PE/COFF spec.
return std::error_code();
}
-#define RETURN_IF_ERROR(X) \
- if (auto EC = errorToErrorCode(X)) \
- return EC;
+#define RETURN_IF_ERROR(E) \
+ if (E) \
+ return E;
-ErrorOr<ArrayRef<UTF16>> ResourceSectionRef::getDirStringAtOffset(uint32_t Offset) {
+Expected<ArrayRef<UTF16>>
+ResourceSectionRef::getDirStringAtOffset(uint32_t Offset) {
BinaryStreamReader Reader = BinaryStreamReader(BBS);
Reader.setOffset(Offset);
uint16_t Length;
ErrorOr<ArrayRef<UTF16>>
ResourceSectionRef::getEntryNameString(const coff_resource_dir_entry &Entry) {
- return getDirStringAtOffset(Entry.Identifier.getNameOffset());
+ return expectedToErrorOr(
+ getDirStringAtOffset(Entry.Identifier.getNameOffset()));
}
-ErrorOr<const coff_resource_dir_table &>
+Expected<const coff_resource_dir_table &>
ResourceSectionRef::getTableAtOffset(uint32_t Offset) {
const coff_resource_dir_table *Table = nullptr;
ErrorOr<const coff_resource_dir_table &>
ResourceSectionRef::getEntrySubDir(const coff_resource_dir_entry &Entry) {
- return getTableAtOffset(Entry.Offset.value());
+ return expectedToErrorOr(getTableAtOffset(Entry.Offset.value()));
}
ErrorOr<const coff_resource_dir_table &> ResourceSectionRef::getBaseTable() {
- return getTableAtOffset(0);
+ return expectedToErrorOr(getTableAtOffset(0));
}