From da6a9bf3eb610d6caba7578fc1cec7ca7b665227 Mon Sep 17 00:00:00 2001 From: John Reiser Date: Fri, 9 Oct 2009 16:09:53 -0700 Subject: [PATCH] Move conditional side effect (reset .all_methods_use_lzma) out of ::PackExe constructor, so that Visitor pattern avoids it. --- src/p_exe.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/p_exe.cpp b/src/p_exe.cpp index 4a43e6fa..8891f075 100644 --- a/src/p_exe.cpp +++ b/src/p_exe.cpp @@ -56,16 +56,16 @@ PackExe::PackExe(InputFile *f) : ih_exesize = ih_imagesize = ih_overlay = 0; stack_for_lzma = 0; use_clear_dirty_stack = false; - - // disable lzma for "--brute" unless explicitly given "--lzma" - if (opt->all_methods_use_lzma && !opt->method_lzma_seen) - opt->all_methods_use_lzma = false; } const int *PackExe::getCompressionMethods(int method, int level) const { bool small = ih_imagesize <= 256*1024; + // disable lzma for "--brute" unless explicitly given "--lzma" + // WARNING: this side effect persists for later files! + if (opt->all_methods_use_lzma && !opt->method_lzma_seen) + opt->all_methods_use_lzma = false; return Packer::getDefaultCompressionMethods_8(method, level, small); }