diff options
author | David Kalnischkies <kalnischkies@gmail.com> | 2012-01-10 12:05:12 +0100 |
---|---|---|
committer | David Kalnischkies <kalnischkies@gmail.com> | 2012-01-10 12:05:12 +0100 |
commit | f23a94d53e451448b80b6aa5b52b5ba418e508a9 (patch) | |
tree | e75c729598048cc033431278e188746c54ad5412 | |
parent | 14ea309a018d1604db45e29baeeb155cf6401c60 (diff) |
as Size() can be quiet expensive for compressed files lets store the result
-rw-r--r-- | methods/rred.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/methods/rred.cc b/methods/rred.cc index bf9294d96..e37a12ed9 100644 --- a/methods/rred.cc +++ b/methods/rred.cc @@ -235,7 +235,9 @@ RredMethod::State RredMethod::patchMMap(FileFd &Patch, FileFd &From, /*{{{*/ MMap ed_cmds(Patch, MMap::ReadOnly); MMap in_file(From, MMap::ReadOnly); - if (ed_cmds.Size() == 0 || in_file.Size() == 0) + unsigned long long const ed_size = ed_cmds.Size(); + unsigned long long const in_size = in_file.Size(); + if (ed_size == 0 || in_size == 0) return MMAP_FAILED; EdCommand* commands = 0; @@ -244,10 +246,10 @@ RredMethod::State RredMethod::patchMMap(FileFd &Patch, FileFd &From, /*{{{*/ const char* begin = (char*) ed_cmds.Data(); const char* end = begin; - const char* ed_end = (char*) ed_cmds.Data() + ed_cmds.Size(); + const char* ed_end = (char*) ed_cmds.Data() + ed_size; const char* input = (char*) in_file.Data(); - const char* input_end = (char*) in_file.Data() + in_file.Size(); + const char* input_end = (char*) in_file.Data() + in_size; size_t i; |