]> git.saurik.com Git - apt.git/commitdiff
* methods/rred.cc:
authorDavid Kalnischkies <kalnischkies@gmail.com>
Sat, 12 Feb 2011 12:43:32 +0000 (13:43 +0100)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Sat, 12 Feb 2011 12:43:32 +0000 (13:43 +0100)
  - read patch into MMap only if we work on uncompressed patches

debian/changelog
methods/rred.cc

index 2da3afa383c286cd2e706626042972374c7d58b2..4f1a8afa4b3c4f0fa7478fb4f61650c12dbdb58e 100644 (file)
@@ -7,8 +7,10 @@ apt (0.8.12) unstable; urgency=low
     - mark a package which was requested to be installed on commandline
       always as manual regardless if it is already marked or not as the
       marker could be lost later by the removal of rdepends (Closes: #612557)
+  * methods/rred.cc:
+    - read patch into MMap only if we work on uncompressed patches
 
- -- David Kalnischkies <kalnischkies@gmail.com>  Fri, 11 Feb 2011 17:44:49 +0100
+ -- David Kalnischkies <kalnischkies@gmail.com>  Sat, 12 Feb 2011 13:43:11 +0100
 
 apt (0.8.11.1) unstable; urgency=low
 
index 1a18a381c803351dd46d56f846a4b8e0277fb794..80cd14986ea4f4d34317a5732dd1f6992786f228 100644 (file)
@@ -252,13 +252,15 @@ struct EdCommand {                                                                /*{{{*/
 RredMethod::State RredMethod::patchMMap(FileFd &Patch, FileFd &From,           /*{{{*/
                                        FileFd &out_file, Hashes *hash) const {
 #ifdef _POSIX_MAPPED_FILES
-       MMap ed_cmds(Patch, MMap::ReadOnly);
+       MMap ed_cmds(MMap::ReadOnly);
        if (Patch.gzFd() != NULL) {
                unsigned long mapSize = Patch.Size();
                DynamicMMap dyn(0, mapSize, 0);
                gzread(Patch.gzFd(), dyn.Data(), mapSize);
                ed_cmds = dyn;
-       }
+       } else
+               ed_cmds = MMap(Patch, MMap::ReadOnly);
+
        MMap in_file(From, MMap::ReadOnly);
 
        if (ed_cmds.Size() == 0 || in_file.Size() == 0)