summaryrefslogtreecommitdiff
path: root/methods
diff options
context:
space:
mode:
authorDavid Kalnischkies <kalnischkies@gmail.com>2012-01-10 12:05:12 +0100
committerDavid Kalnischkies <kalnischkies@gmail.com>2012-01-10 12:05:12 +0100
commitf23a94d53e451448b80b6aa5b52b5ba418e508a9 (patch)
treee75c729598048cc033431278e188746c54ad5412 /methods
parent14ea309a018d1604db45e29baeeb155cf6401c60 (diff)
as Size() can be quiet expensive for compressed files lets store the result
Diffstat (limited to 'methods')
-rw-r--r--methods/rred.cc8
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;