From dfe6d1635392608b4949ea7086ecdace08d1d78c Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Tue, 25 Aug 2009 10:54:50 +0200 Subject: [PATCH] Now transplanting checksum array even in case of aborted write run. --- libisofs/ecma119.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/libisofs/ecma119.c b/libisofs/ecma119.c index 9601f17..4a37392 100644 --- a/libisofs/ecma119.c +++ b/libisofs/ecma119.c @@ -827,6 +827,19 @@ int pad_writer_create(Ecma119Image *target) return ISO_SUCCESS; } +static +int transplant_checksum_buffer(Ecma119Image *target, int flag) +{ + /* Transplant checksum buffer from Ecma119Image to IsoImage */ + iso_image_set_checksums(target->image, target->checksum_buffer, + target->checksum_range_start, + target->checksum_array_pos, + target->checksum_idx_counter + 2, 0); + target->checksum_buffer = NULL; + target->checksum_idx_counter = 0; + return 1; +} + static void *write_function(void *arg) { @@ -903,12 +916,7 @@ void *write_function(void *arg) #ifdef Libisofs_with_checksumS /* Transplant checksum buffer from Ecma119Image to IsoImage */ - iso_image_set_checksums(target->image, target->checksum_buffer, - target->checksum_range_start, - target->checksum_array_pos, - target->checksum_idx_counter + 2, 0); - target->checksum_buffer = NULL; - target->checksum_idx_counter = 0; + transplant_checksum_buffer(target, 0); #endif @@ -928,7 +936,8 @@ void *write_function(void *arg) #ifdef Libisofs_with_checksumS - /* >>> ??? transplant checksum buffer from Ecma119Image to IsoImage */; + /* Transplant checksum buffer from Ecma119Image to IsoImage */ + transplant_checksum_buffer(target, 0); #endif