]> git.saurik.com Git - apt.git/blobdiff - methods/rred.cc
Don't download "optional" files not in Release :/.
[apt.git] / methods / rred.cc
index 0c641ad826e65724f18a7aa8c4dd7bc8d1f29cac..958933a07b50631ebbdd27d2ebce93bf896885b8 100644 (file)
@@ -335,7 +335,7 @@ class Patch {
    FileChanges filechanges;
    MemBlock add_text;
 
    FileChanges filechanges;
    MemBlock add_text;
 
-   static bool retry_fwrite(char *b, size_t l, FileFd &f, Hashes * const start_hash, Hashes * const end_hash = nullptr)
+   static bool retry_fwrite(char *b, size_t l, FileFd &f, Hashes * const start_hash, Hashes * const end_hash = nullptr) APT_NONNULL(1)
    {
       if (f.Write(b, l) == false)
         return false;
    {
       if (f.Write(b, l) == false)
         return false;
@@ -385,8 +385,8 @@ class Patch {
       }
    }
 
       }
    }
 
-   static void dump_mem(FileFd &o, char *p, size_t s, Hashes *hash) {
-      retry_fwrite(p, s, o, hash);
+   static void dump_mem(FileFd &o, char *p, size_t s, Hashes *hash) APT_NONNULL(2) {
+      retry_fwrite(p, s, o, nullptr, hash);
    }
 
    public:
    }
 
    public:
@@ -538,7 +538,8 @@ class Patch {
       for (ch = filechanges.begin(); ch != filechanges.end(); ++ch) {
         dump_lines(out, in, ch->offset, start_hash, end_hash);
         skip_lines(in, ch->del_cnt, start_hash);
       for (ch = filechanges.begin(); ch != filechanges.end(); ++ch) {
         dump_lines(out, in, ch->offset, start_hash, end_hash);
         skip_lines(in, ch->del_cnt, start_hash);
-        dump_mem(out, ch->add, ch->add_len, end_hash);
+        if (ch->add_len != 0)
+           dump_mem(out, ch->add, ch->add_len, end_hash);
       }
       dump_rest(out, in, start_hash, end_hash);
       out.Flush();
       }
       dump_rest(out, in, start_hash, end_hash);
       out.Flush();