public:
static ImageLoaderMachOClassic* instantiateMainExecutable(const macho_header* mh, uintptr_t slide, const char* path,
unsigned int segCount, unsigned int libCount, const LinkContext& context);
- static ImageLoaderMachOClassic* instantiateFromFile(const char* path, int fd, const uint8_t* fileData,
+ static ImageLoaderMachOClassic* instantiateFromFile(const char* path, int fd, const uint8_t* fileData, size_t lenFileData,
uint64_t offsetInFat, uint64_t lenInFat, const struct stat& info,
unsigned int segCount, unsigned int libCount,
const struct linkedit_data_command* codeSigCmd, const LinkContext& context);
protected:
virtual void doInterpose(const LinkContext& context);
+ virtual void dynamicInterpose(const LinkContext& context);
virtual void setDyldInfo(const dyld_info_command*) {}
virtual void setSymbolTableInfo(const macho_nlist*, const char*, const dysymtab_command*);
virtual bool isSubframeworkOf(const LinkContext& context, const ImageLoader* image) const;
virtual void rebase(const LinkContext& context);
virtual const ImageLoader::Symbol* findExportedSymbol(const char* name, const ImageLoader** foundIn) const;
virtual bool containsSymbol(const void* addr) const;
- virtual uintptr_t exportedSymbolAddress(const LinkContext& context, const Symbol* symbol, bool runResolver) const;
+ virtual uintptr_t exportedSymbolAddress(const LinkContext& context, const Symbol* symbol, const ImageLoader* requestor, bool runResolver) const;
virtual bool exportedSymbolIsWeakDefintion(const Symbol* symbol) const;
virtual const char* exportedSymbolName(const Symbol* symbol) const;
virtual unsigned int exportedSymbolCount() const;