Refactoring: move fields ui_pass and ui_total_passes from class

Packer into class UiPacker.
This commit is contained in:
Markus F.X.J. Oberhumer
2006-06-29 14:37:01 +02:00
parent 8ab3e63aeb
commit 7b77491c06
6 changed files with 26 additions and 23 deletions
+9 -8
View File
@@ -40,6 +40,7 @@
#include "p_unix.h" #include "p_unix.h"
#include "p_lx_exc.h" #include "p_lx_exc.h"
#include "p_lx_elf.h" #include "p_lx_elf.h"
#include "ui.h"
#define PT_LOAD32 Elf32_Phdr::PT_LOAD #define PT_LOAD32 Elf32_Phdr::PT_LOAD
#define PT_LOAD64 Elf64_Phdr::PT_LOAD #define PT_LOAD64 Elf64_Phdr::PT_LOAD
@@ -1113,13 +1114,13 @@ void PackLinuxElf32::pack2(OutputFile *fo, Filter &ft)
unsigned k; unsigned k;
// count passes, set ptload vars // count passes, set ptload vars
ui_total_passes = 0; uip->ui_total_passes = 0;
unsigned const e_phnum = get_native16(&ehdri.e_phnum); unsigned const e_phnum = get_native16(&ehdri.e_phnum);
for (k = 0; k < e_phnum; ++k) { for (k = 0; k < e_phnum; ++k) {
if (PT_LOAD32 == get_native32(&phdri[k].p_type)) { if (PT_LOAD32 == get_native32(&phdri[k].p_type)) {
ui_total_passes++; uip->ui_total_passes++;
if (find_LOAD_gap(phdri, k, e_phnum)) { 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; unsigned hdr_u_len = sizeof(Elf32_Ehdr) + sz_phdrs;
ui_pass = 0; uip->ui_pass = 0;
ft.addvalue = 0; ft.addvalue = 0;
int nx = 0; int nx = 0;
@@ -1215,13 +1216,13 @@ void PackLinuxElf64::pack2(OutputFile *fo, Filter &ft)
unsigned k; unsigned k;
// count passes, set ptload vars // count passes, set ptload vars
ui_total_passes = 0; uip->ui_total_passes = 0;
unsigned const e_phnum = get_native16(&ehdri.e_phnum); unsigned const e_phnum = get_native16(&ehdri.e_phnum);
for (k = 0; k < e_phnum; ++k) { for (k = 0; k < e_phnum; ++k) {
if (PT_LOAD64==get_native32(&phdri[k].p_type)) { if (PT_LOAD64==get_native32(&phdri[k].p_type)) {
ui_total_passes++; uip->ui_total_passes++;
if (find_LOAD_gap(phdri, k, e_phnum)) { 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; unsigned hdr_u_len = sizeof(Elf64_Ehdr) + sz_phdrs;
ui_pass = 0; uip->ui_pass = 0;
ft.addvalue = 0; ft.addvalue = 0;
int nx = 0; int nx = 0;
+5 -4
View File
@@ -32,6 +32,7 @@
#include "linker.h" #include "linker.h"
#include "packer.h" #include "packer.h"
#include "p_mach.h" #include "p_mach.h"
#include "ui.h"
static const static const
#include "stub/powerpc-darwin.macho-entry.h" #include "stub/powerpc-darwin.macho-entry.h"
@@ -225,13 +226,13 @@ PackMachPPC32::pack2(OutputFile *fo, Filter &ft) // append compressed body
unsigned k; unsigned k;
// count passes, set ptload vars // count passes, set ptload vars
ui_total_passes = 0; uip->ui_total_passes = 0;
for (k = 0; k < n_segment; ++k) { for (k = 0; k < n_segment; ++k) {
if (Mach_segment_command::LC_SEGMENT==msegcmd[k].cmd if (Mach_segment_command::LC_SEGMENT==msegcmd[k].cmd
&& 0!=msegcmd[k].filesize ) { && 0!=msegcmd[k].filesize ) {
ui_total_passes++; uip->ui_total_passes++;
if (find_SEGMENT_gap(k)) { 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; unsigned hdr_u_len = mhdri.sizeofcmds;
ui_pass = 0; uip->ui_pass = 0;
ft.addvalue = 0; ft.addvalue = 0;
int nx = 0; int nx = 0;
+8 -8
View File
@@ -41,7 +41,7 @@
Packer::Packer(InputFile *f) : Packer::Packer(InputFile *f) :
fi(f), file_size(-1), ph_format(-1), ph_version(-1), 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) last_patch(NULL), last_patch_len(0), last_patch_off(0)
{ {
file_size = f->st.st_size; file_size = f->st.st_size;
@@ -189,9 +189,9 @@ bool Packer::compress(upx_bytep in, upx_bytep out,
step = 0; step = 0;
#endif #endif
} }
if (ui_pass >= 0) if (uip->ui_pass >= 0)
ui_pass++; uip->ui_pass++;
uip->startCallback(ph.u_len, step, ui_pass, ui_total_passes); uip->startCallback(ph.u_len, step, uip->ui_pass, uip->ui_total_passes);
uip->firstCallback(); uip->firstCallback();
//OutputFile::dump("data.raw", in, ph.u_len); //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 // update total_passes; previous (0 < ui_total_passes) means incremental
if (strategy < 0) if (strategy < 0)
ui_total_passes += 1 * nmethods - (0 < ui_total_passes); uip->ui_total_passes += 1 * nmethods - (0 < uip->ui_total_passes);
else 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. // Working buffer for compressed data. Don't waste memory.
MemBuffer *otemp = &obuf; MemBuffer *otemp = &obuf;
@@ -1327,8 +1327,8 @@ void Packer::compressWithFilters(Filter *parm_ft,
if (strategy > 0) if (strategy > 0)
{ {
// adjust passes // adjust passes
if (ui_pass >= 0) if (uip->ui_pass >= 0)
ui_pass++; uip->ui_pass++;
} }
continue; continue;
} }
-2
View File
@@ -281,8 +281,6 @@ protected:
// UI handler // UI handler
UiPacker *uip; UiPacker *uip;
int ui_pass;
int ui_total_passes;
// linker // linker
Linker *linker; Linker *linker;
+1 -1
View File
@@ -178,7 +178,7 @@ static const char *mkline(unsigned long fu_len, unsigned long fc_len,
**************************************************************************/ **************************************************************************/
UiPacker::UiPacker(const Packer *p_) : UiPacker::UiPacker(const Packer *p_) :
p(p_), s(NULL) ui_pass(0), ui_total_passes(0), p(p_), s(NULL)
{ {
init_global_constants(); init_global_constants();
+3
View File
@@ -84,6 +84,9 @@ public:
static void uiHeader(); static void uiHeader();
static void uiFooter(const char *n); static void uiFooter(const char *n);
int ui_pass;
int ui_total_passes;
protected: protected:
virtual void printInfo(int nl=0); virtual void printInfo(int nl=0);
const Packer *p; const Packer *p;