1
0
mirror of https://github.com/upx/upx synced 2025-09-28 19:06:07 +08:00

Removed unused Packer::freezeLoader(). Changed return type of

buildLoader() from "int" to "void".
This commit is contained in:
Markus F.X.J. Oberhumer 2006-11-12 20:57:08 +01:00
parent 9e72ecd93d
commit be235ddc38
38 changed files with 84 additions and 122 deletions

View File

@ -462,7 +462,7 @@ bool PackArmPe::canPack()
}
int PackArmPe::buildLoader(const Filter *ft)
void PackArmPe::buildLoader(const Filter *ft)
{
const unsigned char *loader = use_thumb_stub ? nrv_loader_thumb : nrv_loader_arm;
unsigned size = use_thumb_stub ? sizeof(nrv_loader_thumb) : sizeof(nrv_loader_arm);
@ -503,8 +503,6 @@ int PackArmPe::buildLoader(const Filter *ft)
addLoader("+40C,LZMA_DECODE,LZMA_DEC10", NULL);
addLoader("IDENTSTR,UPX1HEAD", NULL);
freezeLoader();
return getLoaderSize();
}

View File

@ -51,7 +51,7 @@ public:
virtual int canUnpack();
protected:
virtual int buildLoader(const Filter *ft);
virtual void buildLoader(const Filter *ft);
virtual Linker* newLinker() const;
virtual unsigned processImports();

View File

@ -136,7 +136,7 @@ void PackCom::patchLoader(OutputFile *fo,
}
int PackCom::buildLoader(const Filter *ft)
void PackCom::buildLoader(const Filter *ft)
{
initLoader(nrv2b_loader,sizeof(nrv2b_loader));
addLoader("COMMAIN1",
@ -155,8 +155,6 @@ int PackCom::buildLoader(const Filter *ft)
assert(ft->calls > 0);
addFilter16(ft->id);
}
freezeLoader();
return getLoaderSize();
}

View File

@ -56,7 +56,7 @@ protected:
virtual Linker* newLinker() const;
protected:
virtual int buildLoader(const Filter *ft);
virtual void buildLoader(const Filter *ft);
virtual void patchLoader(OutputFile *fo, upx_byte *, int, unsigned);
virtual void addFilter16(int filter_id);
};

View File

@ -89,7 +89,7 @@ Linker* PackDjgpp2::newLinker() const
}
int PackDjgpp2::buildLoader(const Filter *ft)
void PackDjgpp2::buildLoader(const Filter *ft)
{
// prepare loader
initLoader(nrv_loader, sizeof(nrv_loader));
@ -109,8 +109,6 @@ int PackDjgpp2::buildLoader(const Filter *ft)
addFilter32(ft->id);
}
addLoader("DJRETURN,+40C,UPX1HEAD", NULL);
freezeLoader();
return getLoaderSize();
}

View File

@ -59,7 +59,7 @@ protected:
virtual unsigned findOverlapOverhead(const upx_bytep buf,
unsigned range = 0,
unsigned upper_limit = ~0u) const;
virtual int buildLoader(const Filter *ft);
virtual void buildLoader(const Filter *ft);
virtual Linker* newLinker() const;
long coff_offset;

View File

@ -94,14 +94,12 @@ void PackElks8086::readKernel()
//
**************************************************************************/
int PackElks8086::buildLoader(const Filter *ft)
void PackElks8086::buildLoader(const Filter *ft)
{
// prepare loader
initLoader(nrv_loader, sizeof(nrv_loader));
// FIXME
UNUSED(ft);
freezeLoader();
return getLoaderSize();
}

View File

@ -113,7 +113,7 @@ int PackExe::fillExeHeader(struct exe_header_t *eh) const
}
int PackExe::buildLoader(const Filter *)
void PackExe::buildLoader(const Filter *)
{
struct exe_header_t tmp_oh;
int flag = fillExeHeader(&tmp_oh);
@ -189,8 +189,6 @@ int PackExe::buildLoader(const Filter *)
"EXERETIP",
NULL
);
freezeLoader();
return getLoaderSize();
}

View File

@ -68,7 +68,7 @@ protected:
virtual int readFileHeader(void);
virtual int fillExeHeader(struct exe_header_t *) const;
virtual int buildLoader(const Filter *ft);
virtual void buildLoader(const Filter *ft);
virtual Linker* newLinker() const;
struct exe_header_t

View File

@ -431,7 +431,7 @@ void PackLinuxElf32x86::defineSymbols(Filter const *const ft)
}
}
int
void
PackLinuxElf32::buildLinuxLoader(
upx_byte const *const proto,
unsigned const szproto,
@ -488,13 +488,11 @@ PackLinuxElf32::buildLinuxLoader(
addStubEntrySections(ft);
freezeLoader();
defineSymbols(ft);
linker->relocate();
return getLoaderSize();
}
int
void
PackLinuxElf64::buildLinuxLoader(
upx_byte const *const proto,
unsigned const szproto,
@ -538,10 +536,8 @@ PackLinuxElf64::buildLinuxLoader(
addStubEntrySections(ft);
freezeLoader();
defineSymbols(ft);
linker->relocate();
return getLoaderSize();
}
void
@ -629,7 +625,7 @@ static const
static const
#include "stub/i386-linux.elf-fold.h"
int
void
PackLinuxElf32x86::buildLoader(const Filter *ft)
{
unsigned char tmp[sizeof(linux_i386elf_fold)];
@ -647,7 +643,7 @@ PackLinuxElf32x86::buildLoader(const Filter *ft)
}
}
}
return buildLinuxLoader(
buildLinuxLoader(
linux_i386elf_loader, sizeof(linux_i386elf_loader),
tmp, sizeof(linux_i386elf_fold), ft );
}
@ -657,7 +653,7 @@ static const
static const
#include "stub/i386-bsd.elf-fold.h"
int
void
PackBSDElf32x86::buildLoader(const Filter *ft)
{
unsigned char tmp[sizeof(bsd_i386elf_fold)];
@ -675,7 +671,7 @@ PackBSDElf32x86::buildLoader(const Filter *ft)
}
}
}
return buildLinuxLoader(
buildLinuxLoader(
bsd_i386elf_loader, sizeof(bsd_i386elf_loader),
tmp, sizeof(bsd_i386elf_fold), ft );
}
@ -687,7 +683,7 @@ static const
static const
#include "stub/i386-openbsd.elf-fold.h"
int
void
PackOpenBSDElf32x86::buildLoader(const Filter *ft)
{
unsigned char tmp[sizeof(openbsd_i386elf_fold)];
@ -705,7 +701,7 @@ PackOpenBSDElf32x86::buildLoader(const Filter *ft)
}
}
}
return buildLinuxLoader(
buildLinuxLoader(
bsd_i386elf_loader, sizeof(bsd_i386elf_loader),
tmp, sizeof(openbsd_i386elf_fold), ft );
}
@ -777,16 +773,16 @@ ehdr_lebe(Elf_LE32_Ehdr *const ehdr_le, Elf_BE32_Ehdr const *const ehdr_be)
ehdr_le->e_shstrndx = ehdr_be->e_shstrndx;
}
int
void
PackLinuxElf32armBe::buildLoader(Filter const *ft)
{
return ARM_buildLoader(ft, true);
ARM_buildLoader(ft, true);
}
int
void
PackLinuxElf32armLe::buildLoader(Filter const *ft)
{
return ARM_buildLoader(ft, false);
ARM_buildLoader(ft, false);
}
static const
@ -794,10 +790,10 @@ static const
static const
#include "stub/powerpc-linux.elf-fold.h"
int
void
PackLinuxElf32ppc::buildLoader(const Filter *ft)
{
return buildLinuxLoader(
buildLinuxLoader(
linux_elfppc32_loader, sizeof(linux_elfppc32_loader),
linux_elfppc32_fold, sizeof(linux_elfppc32_fold), ft );
}
@ -807,10 +803,10 @@ static const
static const
#include "stub/amd64-linux.elf-fold.h"
int
void
PackLinuxElf64amd::buildLoader(const Filter *ft)
{
return buildLinuxLoader(
buildLinuxLoader(
linux_elf64amd_loader, sizeof(linux_elf64amd_loader),
linux_elf64amd_fold, sizeof(linux_elf64amd_fold), ft );
}
@ -1515,7 +1511,7 @@ PackLinuxElf32armLe::getFilters() const
return ARM_getFilters(false);
}
int
void
PackLinuxElf32::ARM_buildLoader(const Filter *ft, bool const isBE)
{
unsigned const sz_loader = sizeof(linux_elf32arm_loader);
@ -1542,7 +1538,7 @@ PackLinuxElf32::ARM_buildLoader(const Filter *ft, bool const isBE)
}
}
if (!asm_brev) { // was assembled to match target
return buildLinuxLoader(linux_elf32arm_loader, sz_loader,
buildLinuxLoader(linux_elf32arm_loader, sz_loader,
tmp_fold, sz_fold, ft );
}
else { // was assembled brev() from target
@ -1567,7 +1563,7 @@ PackLinuxElf32::ARM_buildLoader(const Filter *ft, bool const isBE)
(isBE ? (void (*)(void *, void const *))ehdr_bele
: (void (*)(void *, void const *))ehdr_lebe)
(tmp_fold.getVoidPtr(), (void const *)linux_elf32arm_fold);
return buildLinuxLoader(brev_loader, sz_loader, tmp_fold, sz_fold, ft);
buildLinuxLoader(brev_loader, sz_loader, tmp_fold, sz_fold, ft);
}
}

View File

@ -40,7 +40,7 @@ class PackLinuxElf : public PackUnix
public:
PackLinuxElf(InputFile *f);
virtual ~PackLinuxElf();
/*virtual int buildLoader(const Filter *);*/
/*virtual void buildLoader(const Filter *);*/
virtual bool canUnpackVersion(int version) const { return (version >= 11); }
protected:
@ -90,7 +90,7 @@ protected:
// These ARM routines are essentially common to big/little endian,
// but the class hierarchy splits after this class.
virtual int ARM_buildLoader(Filter const *ft, bool isBE);
virtual void ARM_buildLoader(Filter const *ft, bool isBE);
virtual void ARM_defineSymbols(Filter const *ft);
virtual void ARM_updateLoader(OutputFile *);
virtual void ARM_pack1(OutputFile *, bool isBE);
@ -106,7 +106,7 @@ protected:
void const *proto,
unsigned const brka
);
virtual int buildLinuxLoader(
virtual void buildLinuxLoader(
upx_byte const *const proto, // assembly-only sections
unsigned const szproto,
upx_byte const *const fold, // linked assembly + C section
@ -172,7 +172,7 @@ class PackLinuxElf64 : public PackLinuxElf
public:
PackLinuxElf64(InputFile *f);
virtual ~PackLinuxElf64();
/*virtual int buildLoader(const Filter *);*/
/*virtual void buildLoader(const Filter *);*/
protected:
virtual int checkEhdr(Elf64_Ehdr const *ehdr) const;
@ -188,7 +188,7 @@ protected:
void const *proto,
unsigned const brka
);
virtual int buildLinuxLoader(
virtual void buildLinuxLoader(
upx_byte const *const proto, // assembly-only sections
unsigned const szproto,
upx_byte const *const fold, // linked assembly + C section
@ -288,7 +288,7 @@ public:
protected:
virtual void pack1(OutputFile *, Filter &); // generate executable header
//virtual void pack3(OutputFile *, Filter &); // append loader
virtual int buildLoader(const Filter *);
virtual void buildLoader(const Filter *);
virtual Linker* newLinker() const;
virtual void defineSymbols(Filter const *);
};
@ -308,7 +308,7 @@ public:
virtual const int *getFilters() const;
protected:
virtual void pack1(OutputFile *, Filter &); // generate executable header
virtual int buildLoader(const Filter *);
virtual void buildLoader(const Filter *);
virtual Linker* newLinker() const;
};
@ -331,7 +331,7 @@ public:
protected:
virtual void pack1(OutputFile *, Filter &); // generate executable header
virtual int buildLoader(const Filter *);
virtual void buildLoader(const Filter *);
virtual void addStubEntrySections(Filter const *);
virtual Linker* newLinker() const;
virtual void defineSymbols(Filter const *);
@ -349,7 +349,7 @@ public:
protected:
virtual void pack1(OutputFile *, Filter &); // generate executable header
virtual int buildLoader(const Filter *);
virtual void buildLoader(const Filter *);
};
class PackFreeBSDElf32x86 : public PackBSDElf32x86
@ -376,7 +376,7 @@ public:
virtual ~PackOpenBSDElf32x86();
protected:
virtual int buildLoader(const Filter *ft);
virtual void buildLoader(const Filter *ft);
virtual void generateElfHdr(
OutputFile *,
void const *proto,
@ -402,7 +402,7 @@ protected:
virtual const int *getCompressionMethods(int method, int level) const;
virtual Linker* newLinker() const;
virtual void pack1(OutputFile *, Filter &); // generate executable header
virtual int buildLoader(const Filter *);
virtual void buildLoader(const Filter *);
virtual void updateLoader(OutputFile *);
virtual void defineSymbols(Filter const *);
};
@ -421,7 +421,7 @@ protected:
virtual const int *getCompressionMethods(int method, int level) const;
virtual Linker* newLinker() const;
virtual void pack1(OutputFile *, Filter &); // generate executable header
virtual int buildLoader(const Filter *);
virtual void buildLoader(const Filter *);
virtual void updateLoader(OutputFile *);
virtual void defineSymbols(Filter const *);
};

View File

@ -292,7 +292,7 @@ Linker *PackLinuxI386::newLinker() const
return new ElfLinkerX86;
}
int
void
PackLinuxI386::buildLinuxLoader(
upx_byte const *const proto,
unsigned const szproto,
@ -372,7 +372,6 @@ PackLinuxI386::buildLinuxLoader(
addLoader("IDENTSTR", NULL);
addLoader("LEXEC020", NULL);
addLoader("FOLDEXEC", NULL);
freezeLoader();
if (ph.method == M_LZMA) {
const lzma_compress_result_t *res = &ph.compress_result.result_lzma;
unsigned const properties = // lc, lp, pb, dummy
@ -394,10 +393,9 @@ PackLinuxI386::buildLinuxLoader(
}
}
linker->relocate();
return getLoaderSize();
}
int
void
PackLinuxI386::buildLoader(Filter const *ft)
{
unsigned const sz_fold = sizeof(linux_i386exec_fold);
@ -412,12 +410,12 @@ PackLinuxI386::buildLoader(Filter const *ft)
patch_le32(buf,sz_fold,"UPX3",progid);
patch_le32(buf,sz_fold,"UPX2",exetype > 0 ? 0 : 0x7fffffff);
return buildLinuxLoader(
buildLinuxLoader(
linux_i386exec_loader, sizeof(linux_i386exec_loader),
buf, sz_fold, ft );
}
int
void
PackBSDI386::buildLoader(Filter const *ft)
{
unsigned const sz_fold = sizeof(bsd_i386exec_fold);
@ -432,7 +430,7 @@ PackBSDI386::buildLoader(Filter const *ft)
patch_le32(buf,sz_fold,"UPX3",progid);
patch_le32(buf,sz_fold,"UPX2",exetype > 0 ? 0 : 0x7fffffff);
return buildLinuxLoader(
buildLinuxLoader(
bsd_i386exec_loader, sizeof(bsd_i386exec_loader),
buf, sz_fold, ft );
}

View File

@ -51,7 +51,7 @@ public:
virtual const char *getName() const { return "linux/386"; }
virtual const int *getCompressionMethods(int method, int level) const;
virtual const int *getFilters() const;
virtual int buildLoader(const Filter *);
virtual void buildLoader(const Filter *);
virtual bool canPack();
@ -64,7 +64,7 @@ protected:
// loader util
virtual Linker* newLinker() const;
virtual int getLoaderPrefixSize() const;
virtual int buildLinuxLoader(
virtual void buildLinuxLoader(
upx_byte const *const proto, // assembly-only sections
unsigned const szproto,
upx_byte const *const fold, // linked assembly + C section
@ -133,7 +133,7 @@ public:
protected:
virtual void pack1(OutputFile *, Filter &); // generate executable header
virtual int buildLoader(const Filter *);
virtual void buildLoader(const Filter *);
};
#endif /* already included */

View File

@ -182,7 +182,6 @@ void PackLinuxElf32x86interp::pack3(OutputFile *fo, Filter &/*ft*/)
addLoader("LXPTI200", NULL);
addLoader("FOLDEXEC", NULL);
freezeLoader();
upx_byte const *p = getLoader();
lsize = getLoaderSize();
updateLoader(fo);

View File

@ -71,7 +71,7 @@ umax(unsigned a, unsigned b)
return a;
}
int
void
PackLinuxI386sh::buildLoader(Filter const *ft)
{
unsigned const sz_fold = sizeof(linux_i386sh_fold);
@ -99,7 +99,7 @@ PackLinuxI386sh::buildLoader(Filter const *ft)
bool success = fold_ft.filter(buf + fold_hdrlen, sz_fold - fold_hdrlen);
UNUSED(success);
return buildLinuxLoader(
buildLinuxLoader(
linux_i386sh_loader, sizeof(linux_i386sh_loader),
buf, sz_fold, ft );
}

View File

@ -48,7 +48,7 @@ public:
virtual int getFormat() const { return UPX_F_LINUX_SH_i386; }
virtual const char *getName() const { return "linux/sh386"; }
virtual const int *getFilters() const { return NULL; }
virtual int buildLoader(const Filter *);
virtual void buildLoader(const Filter *);
virtual void pack1(OutputFile *fo, Filter &ft);
virtual void pack3(OutputFile *fo, Filter &ft);

View File

@ -90,7 +90,7 @@ void PackMachPPC32::defineSymbols(Filter const *)
}
int
void
PackMachPPC32::buildMachLoader(
upx_byte const *const proto,
unsigned const szproto,
@ -131,16 +131,14 @@ PackMachPPC32::buildMachLoader(
addStubEntrySections(ft);
freezeLoader();
defineSymbols(ft);
linker->relocate();
return getLoaderSize();
}
int
void
PackMachPPC32::buildLoader(const Filter *ft)
{
return buildMachLoader(
buildMachLoader(
l_mac_ppc32_loader, sizeof(l_mac_ppc32_loader),
fold_machppc32, sizeof(fold_machppc32), ft );
}

View File

@ -180,12 +180,12 @@ public:
virtual unsigned find_SEGMENT_gap(unsigned const k);
protected:
virtual int buildLoader(const Filter *ft);
virtual void buildLoader(const Filter *ft);
virtual Linker* newLinker() const;
virtual void patchLoader();
virtual void patchLoaderChecksum();
virtual void updateLoader(OutputFile *);
virtual int buildMachLoader(
virtual void buildMachLoader(
upx_byte const *const proto,
unsigned const szproto,
upx_byte const *const fold,

View File

@ -300,7 +300,7 @@ bool PackPs1::canPack()
//
**************************************************************************/
int PackPs1::buildLoader(const Filter *)
void PackPs1::buildLoader(const Filter *)
{
const char *method = NULL;
@ -402,8 +402,6 @@ int PackPs1::buildLoader(const Filter *)
}
addLoader("UPX1HEAD", "IDENTSTR", NULL);
}
freezeLoader();
return getLoaderSize();
}
#define OPTYPE(x) (((x) >> 13) & 0x7)

View File

@ -59,7 +59,7 @@ protected:
virtual void putBkupHeader(const unsigned char *src, unsigned char *dst, unsigned *len);
virtual bool getBkupHeader(unsigned char *src, unsigned char * dst);
virtual bool readBkupHeader();
virtual int buildLoader(const Filter *ft);
virtual void buildLoader(const Filter *ft);
virtual bool findBssSection();
virtual Linker* newLinker() const;

View File

@ -100,7 +100,7 @@ void PackSys::patchLoader(OutputFile *fo,
}
int PackSys::buildLoader(const Filter *ft)
void PackSys::buildLoader(const Filter *ft)
{
initLoader(nrv2b_loader,sizeof(nrv2b_loader));
addLoader("SYSMAIN1",
@ -123,8 +123,6 @@ int PackSys::buildLoader(const Filter *ft)
"SYSJUMP1",
NULL
);
freezeLoader();
return getLoaderSize();
}

View File

@ -49,7 +49,7 @@ protected:
virtual unsigned getCallTrickOffset() const { return 0; }
protected:
virtual int buildLoader(const Filter *ft);
virtual void buildLoader(const Filter *ft);
virtual void patchLoader(OutputFile *fo, upx_byte *, int, unsigned);
};

View File

@ -81,7 +81,7 @@ Linker* PackTmt::newLinker() const
}
int PackTmt::buildLoader(const Filter *ft)
void PackTmt::buildLoader(const Filter *ft)
{
// prepare loader
initLoader(nrv_loader,sizeof(nrv_loader));
@ -105,8 +105,6 @@ int PackTmt::buildLoader(const Filter *ft)
"RELOC32J,TMTJUMP1",
NULL
);
freezeLoader();
return getLoaderSize();
}

View File

@ -57,7 +57,7 @@ protected:
virtual unsigned findOverlapOverhead(const upx_bytep buf,
unsigned range = 0,
unsigned upper_limit = ~0u) const;
virtual int buildLoader(const Filter *ft);
virtual void buildLoader(const Filter *ft);
virtual Linker* newLinker() const;
unsigned adam_offset;

View File

@ -93,7 +93,7 @@ void PackTos::LinkerSymbols::LoopInfo::init(unsigned count_, bool allow_dbra)
}
int PackTos::buildLoader(const Filter *ft)
void PackTos::buildLoader(const Filter *ft)
{
assert(ft->id == 0);
@ -201,9 +201,6 @@ int PackTos::buildLoader(const Filter *ft)
addLoader("loop3_set_count.l", NULL);
addLoader("jmpstack", NULL);
freezeLoader();
return getLoaderSize();
}

View File

@ -55,7 +55,7 @@ public:
protected:
virtual Linker* newLinker() const;
virtual int buildLoader(const Filter *ft);
virtual void buildLoader(const Filter *ft);
virtual int readFileHeader();
virtual bool checkFileHeader();

View File

@ -223,7 +223,7 @@ Linker* PackVmlinuxI386::newLinker() const
}
int PackVmlinuxI386::buildLoader(const Filter *ft)
void PackVmlinuxI386::buildLoader(const Filter *ft)
{
// prepare loader
initLoader(nrv_loader, sizeof(nrv_loader));
@ -245,8 +245,6 @@ int PackVmlinuxI386::buildLoader(const Filter *ft)
addFilter32(ft->id);
}
addLoader("LINUX990,IDENTSTR,UPX1HEAD", NULL);
freezeLoader();
return getLoaderSize();
}

View File

@ -56,7 +56,7 @@ public:
protected:
virtual Elf_LE32_Shdr const *getElfSections();
virtual int buildLoader(const Filter *ft);
virtual void buildLoader(const Filter *ft);
virtual Linker* newLinker() const;
// virtual const upx_byte *getLoader() const;
// virtual int getLoaderSize() const;

View File

@ -269,7 +269,7 @@ Linker* PackVmlinuzI386::newLinker() const
// vmlinuz specific
**************************************************************************/
int PackVmlinuzI386::buildLoader(const Filter *ft)
void PackVmlinuzI386::buildLoader(const Filter *ft)
{
// prepare loader
initLoader(nrv_loader, sizeof(nrv_loader));
@ -286,8 +286,6 @@ int PackVmlinuzI386::buildLoader(const Filter *ft)
addFilter32(ft->id);
}
addLoader("LINUZ990,IDENTSTR,UPX1HEAD", NULL);
freezeLoader();
return getLoaderSize();
}
@ -357,7 +355,7 @@ void PackVmlinuzI386::pack(OutputFile *fo)
// bvmlinuz specific
**************************************************************************/
int PackBvmlinuzI386::buildLoader(const Filter *ft)
void PackBvmlinuzI386::buildLoader(const Filter *ft)
{
// prepare loader
initLoader(nrv_loader, sizeof(nrv_loader));
@ -387,8 +385,6 @@ int PackBvmlinuzI386::buildLoader(const Filter *ft)
addFilter32(ft->id);
}
addLoader("LINUZ990", NULL);
freezeLoader();
return getLoaderSize();
}

View File

@ -56,7 +56,7 @@ protected:
virtual int decompressKernel();
virtual void readKernel();
virtual int buildLoader(const Filter *ft);
virtual void buildLoader(const Filter *ft);
virtual Linker* newLinker() const;
// virtual const upx_byte *getLoader() const;
@ -105,7 +105,7 @@ public:
virtual void pack(OutputFile *fo);
protected:
virtual int buildLoader(const Filter *ft);
virtual void buildLoader(const Filter *ft);
};
@ -132,7 +132,7 @@ protected:
virtual int decompressKernel();
virtual void readKernel();
virtual int buildLoader(const Filter *ft);
virtual void buildLoader(const Filter *ft);
};

View File

@ -57,7 +57,7 @@ const int *PackW16Ne::getFilters() const
}
int PackW16Ne::buildLoader(const Filter *ft)
void PackW16Ne::buildLoader(const Filter *ft)
{
// prepare loader
// initLoader(nrv_loader,sizeof(nrv_loader));
@ -68,8 +68,6 @@ int PackW16Ne::buildLoader(const Filter *ft)
// addLoader("...");
}
//
freezeLoader();
return getLoaderSize();
}

View File

@ -54,7 +54,7 @@ public:
protected:
virtual int readFileHeader(void);
virtual int buildLoader(const Filter *ft);
virtual void buildLoader(const Filter *ft);
virtual Linker* newLinker() const;
};

View File

@ -535,7 +535,7 @@ bool PackW32Pe::canPack()
}
int PackW32Pe::buildLoader(const Filter *ft)
void PackW32Pe::buildLoader(const Filter *ft)
{
// recompute tlsindex (see pack() below)
unsigned tmp_tlsindex = tlsindex;
@ -598,8 +598,6 @@ int PackW32Pe::buildLoader(const Filter *ft)
"IDENTSTR,UPX1HEAD",
NULL
);
freezeLoader();
return getLoaderSize();
}

View File

@ -53,7 +53,7 @@ public:
protected:
virtual int readFileHeader();
virtual int buildLoader(const Filter *ft);
virtual void buildLoader(const Filter *ft);
virtual Linker* newLinker() const;
bool isrtm;

View File

@ -88,7 +88,7 @@ Linker* PackWcle::newLinker() const
}
int PackWcle::buildLoader(const Filter *ft)
void PackWcle::buildLoader(const Filter *ft)
{
// prepare loader
initLoader(nrv_loader,sizeof(nrv_loader));
@ -118,8 +118,6 @@ int PackWcle::buildLoader(const Filter *ft)
"WCLEMAI4",
NULL
);
freezeLoader();
return getLoaderSize();
}

View File

@ -54,7 +54,7 @@ public:
protected:
virtual void handleStub(OutputFile *fo);
virtual int buildLoader(const Filter *ft);
virtual void buildLoader(const Filter *ft);
virtual Linker* newLinker() const;
virtual void readObjectTable();

View File

@ -1028,11 +1028,13 @@ void Packer::initLoader(const void *pdata, int plen, int small)
}
#if 0
void Packer::addLoader(const char *s)
{
if (s && *s)
linker->addLoader(s);
}
#endif
void __acc_cdecl_va Packer::addLoader(const char *s, ...)
{
@ -1314,7 +1316,8 @@ void Packer::compressWithFilters(Filter *parm_ft,
{
// get results
ph.overlap_overhead = findOverlapOverhead(*otemp, overlap_range);
lsize = buildLoader(&ft);
buildLoader(&ft);
lsize = getLoaderSize();
assert(lsize > 0);
}
#if 0

View File

@ -203,18 +203,17 @@ protected:
virtual void checkAlreadyPacked(const void *b, int blen);
// loader core
virtual int buildLoader(const Filter *ft) = 0;
virtual void buildLoader(const Filter *ft) = 0;
virtual Linker* newLinker() const = 0;
// loader util for linker
void freezeLoader() { }
virtual upx_byte *getLoader() const;
virtual int getLoaderSize() const;
virtual void initLoader(const void *pdata, int plen, int small=-1);
#if 1 && (ACC_CC_GNUC >= 0x040100)
virtual void addLoader(const char *);
//virtual void addLoader(const char *);
virtual void __acc_cdecl_va addLoader(const char *, ...) __attribute__((__sentinel__));
#else
virtual void addLoader(const char *);
//virtual void addLoader(const char *);
virtual void __acc_cdecl_va addLoader(const char *, ...);
#endif
virtual int getLoaderSection(const char *name, int *slen=NULL) const;