Refactoring: move fields ui_pass and ui_total_passes from class
Packer into class UiPacker.
This commit is contained in:
parent
8ab3e63aeb
commit
7b77491c06
@ -40,6 +40,7 @@
|
||||
#include "p_unix.h"
|
||||
#include "p_lx_exc.h"
|
||||
#include "p_lx_elf.h"
|
||||
#include "ui.h"
|
||||
|
||||
#define PT_LOAD32 Elf32_Phdr::PT_LOAD
|
||||
#define PT_LOAD64 Elf64_Phdr::PT_LOAD
|
||||
@ -1113,13 +1114,13 @@ void PackLinuxElf32::pack2(OutputFile *fo, Filter &ft)
|
||||
unsigned k;
|
||||
|
||||
// count passes, set ptload vars
|
||||
ui_total_passes = 0;
|
||||
uip->ui_total_passes = 0;
|
||||
unsigned const e_phnum = get_native16(&ehdri.e_phnum);
|
||||
for (k = 0; k < e_phnum; ++k) {
|
||||
if (PT_LOAD32 == get_native32(&phdri[k].p_type)) {
|
||||
ui_total_passes++;
|
||||
uip->ui_total_passes++;
|
||||
if (find_LOAD_gap(phdri, k, e_phnum)) {
|
||||
ui_total_passes++;
|
||||
uip->ui_total_passes++;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1130,7 +1131,7 @@ void PackLinuxElf32::pack2(OutputFile *fo, Filter &ft)
|
||||
|
||||
unsigned hdr_u_len = sizeof(Elf32_Ehdr) + sz_phdrs;
|
||||
|
||||
ui_pass = 0;
|
||||
uip->ui_pass = 0;
|
||||
ft.addvalue = 0;
|
||||
|
||||
int nx = 0;
|
||||
@ -1215,13 +1216,13 @@ void PackLinuxElf64::pack2(OutputFile *fo, Filter &ft)
|
||||
unsigned k;
|
||||
|
||||
// count passes, set ptload vars
|
||||
ui_total_passes = 0;
|
||||
uip->ui_total_passes = 0;
|
||||
unsigned const e_phnum = get_native16(&ehdri.e_phnum);
|
||||
for (k = 0; k < e_phnum; ++k) {
|
||||
if (PT_LOAD64==get_native32(&phdri[k].p_type)) {
|
||||
ui_total_passes++;
|
||||
uip->ui_total_passes++;
|
||||
if (find_LOAD_gap(phdri, k, e_phnum)) {
|
||||
ui_total_passes++;
|
||||
uip->ui_total_passes++;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1232,7 +1233,7 @@ void PackLinuxElf64::pack2(OutputFile *fo, Filter &ft)
|
||||
|
||||
unsigned hdr_u_len = sizeof(Elf64_Ehdr) + sz_phdrs;
|
||||
|
||||
ui_pass = 0;
|
||||
uip->ui_pass = 0;
|
||||
ft.addvalue = 0;
|
||||
|
||||
int nx = 0;
|
||||
|
||||
@ -32,6 +32,7 @@
|
||||
#include "linker.h"
|
||||
#include "packer.h"
|
||||
#include "p_mach.h"
|
||||
#include "ui.h"
|
||||
|
||||
static const
|
||||
#include "stub/powerpc-darwin.macho-entry.h"
|
||||
@ -225,13 +226,13 @@ PackMachPPC32::pack2(OutputFile *fo, Filter &ft) // append compressed body
|
||||
unsigned k;
|
||||
|
||||
// count passes, set ptload vars
|
||||
ui_total_passes = 0;
|
||||
uip->ui_total_passes = 0;
|
||||
for (k = 0; k < n_segment; ++k) {
|
||||
if (Mach_segment_command::LC_SEGMENT==msegcmd[k].cmd
|
||||
&& 0!=msegcmd[k].filesize ) {
|
||||
ui_total_passes++;
|
||||
uip->ui_total_passes++;
|
||||
if (find_SEGMENT_gap(k)) {
|
||||
ui_total_passes++;
|
||||
uip->ui_total_passes++;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -242,7 +243,7 @@ PackMachPPC32::pack2(OutputFile *fo, Filter &ft) // append compressed body
|
||||
|
||||
unsigned hdr_u_len = mhdri.sizeofcmds;
|
||||
|
||||
ui_pass = 0;
|
||||
uip->ui_pass = 0;
|
||||
ft.addvalue = 0;
|
||||
|
||||
int nx = 0;
|
||||
|
||||
@ -41,7 +41,7 @@
|
||||
|
||||
Packer::Packer(InputFile *f) :
|
||||
fi(f), file_size(-1), ph_format(-1), ph_version(-1),
|
||||
uip(NULL), ui_pass(0), ui_total_passes(0), linker(NULL),
|
||||
uip(NULL), linker(NULL),
|
||||
last_patch(NULL), last_patch_len(0), last_patch_off(0)
|
||||
{
|
||||
file_size = f->st.st_size;
|
||||
@ -189,9 +189,9 @@ bool Packer::compress(upx_bytep in, upx_bytep out,
|
||||
step = 0;
|
||||
#endif
|
||||
}
|
||||
if (ui_pass >= 0)
|
||||
ui_pass++;
|
||||
uip->startCallback(ph.u_len, step, ui_pass, ui_total_passes);
|
||||
if (uip->ui_pass >= 0)
|
||||
uip->ui_pass++;
|
||||
uip->startCallback(ph.u_len, step, uip->ui_pass, uip->ui_total_passes);
|
||||
uip->firstCallback();
|
||||
|
||||
//OutputFile::dump("data.raw", in, ph.u_len);
|
||||
@ -1268,9 +1268,9 @@ void Packer::compressWithFilters(Filter *parm_ft,
|
||||
|
||||
// update total_passes; previous (0 < ui_total_passes) means incremental
|
||||
if (strategy < 0)
|
||||
ui_total_passes += 1 * nmethods - (0 < ui_total_passes);
|
||||
uip->ui_total_passes += 1 * nmethods - (0 < uip->ui_total_passes);
|
||||
else
|
||||
ui_total_passes += nfilters * nmethods - (0 < ui_total_passes);
|
||||
uip->ui_total_passes += nfilters * nmethods - (0 < uip->ui_total_passes);
|
||||
|
||||
// Working buffer for compressed data. Don't waste memory.
|
||||
MemBuffer *otemp = &obuf;
|
||||
@ -1327,8 +1327,8 @@ void Packer::compressWithFilters(Filter *parm_ft,
|
||||
if (strategy > 0)
|
||||
{
|
||||
// adjust passes
|
||||
if (ui_pass >= 0)
|
||||
ui_pass++;
|
||||
if (uip->ui_pass >= 0)
|
||||
uip->ui_pass++;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -281,8 +281,6 @@ protected:
|
||||
|
||||
// UI handler
|
||||
UiPacker *uip;
|
||||
int ui_pass;
|
||||
int ui_total_passes;
|
||||
|
||||
// linker
|
||||
Linker *linker;
|
||||
|
||||
@ -178,7 +178,7 @@ static const char *mkline(unsigned long fu_len, unsigned long fc_len,
|
||||
**************************************************************************/
|
||||
|
||||
UiPacker::UiPacker(const Packer *p_) :
|
||||
p(p_), s(NULL)
|
||||
ui_pass(0), ui_total_passes(0), p(p_), s(NULL)
|
||||
{
|
||||
init_global_constants();
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user