X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/6b3ddbd059c403efeb40d81c29f2cae6e8f5b1bf..8279242457d9be370f7a6f9337085d38506e967b:/methods/rred.cc diff --git a/methods/rred.cc b/methods/rred.cc index 0c641ad82..958933a07 100644 --- a/methods/rred.cc +++ b/methods/rred.cc @@ -335,7 +335,7 @@ class Patch { 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; @@ -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: @@ -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); - 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();