Add another overload of bspatch(). am: 62d5e48122 am: 9e29277587

am: 492cede2b6

Change-Id: I597e415469e84ea18f13316ee1d0879afabd4d06
This commit is contained in:
Sen Jiang authored and android-build-merger committed 2017-02-16 21:26:46 +00:00
commit 31acb6ef3a
2 files changed
+23 -2

No files matched your search

+16 -2
View File
@@ -201,6 +201,20 @@ int bspatch(const char* old_filename,
}
patch_file.reset();
return bspatch(old_filename, new_filename, patch.data(), patch_size,
old_extents, new_extents);
}
// Patch |old_filename| with |patch_data| and save it to |new_filename|.
// |old_extents| and |new_extents| are comma-separated lists of "offset:length"
// extents of |old_filename| and |new_filename|.
// Returns 0 on success, 1 on I/O error and 2 on data error.
int bspatch(const char* old_filename,
const char* new_filename,
const uint8_t* patch_data,
size_t patch_size,
const char* old_extents,
const char* new_extents) {
int using_extents = (old_extents != NULL || new_extents != NULL);
// Open input file for reading.
@@ -242,11 +256,11 @@ int bspatch(const char* old_filename,
parsed_new_extents)) {
// New and old file is overlapping, we can not stream output to new file,
// cache it in a buffer and write to the file at the end.
uint64_t newsize = ParseInt64(patch.data() + 24);
uint64_t newsize = ParseInt64(patch_data + 24);
new_file.reset(new BufferFile(std::move(new_file), newsize));
}
return bspatch(old_file, new_file, patch.data(), patch_size);
return bspatch(old_file, new_file, patch_data, patch_size);
}
// Patch |old_data| with |patch_data| and save it by calling sink function.
+7
View File
@@ -19,6 +19,13 @@ int bspatch(const char* old_filename,
const char* old_extents,
const char* new_extents);
int bspatch(const char* old_filename,
const char* new_filename,
const uint8_t* patch_data,
size_t patch_size,
const char* old_extents,
const char* new_extents);
int bspatch(const uint8_t* old_data,
size_t old_size,
const uint8_t* patch_data,