diff --git a/src/logger.c b/src/logger.c index 4c3dd6190bbb65df12e2cce9b62da1bfdb578926..f746816e424b324e96a9d04a40ec0b8077a71da3 100644 --- a/src/logger.c +++ b/src/logger.c @@ -285,12 +285,14 @@ void logger_ensure_size(size_t total_nr_parts, size_t logger_size) { * */ void logger_write_file_header(struct dump *dump) { + +#ifdef SWIFT_DEBUG_CHECKS message("writing header"); +#endif - size_t i, j; - char *buff, *name_buff, *skip_header; + size_t i; + char *buff, *skip_header; size_t *file_offset; - size_t mask_size; struct logger_const log_const; logger_const_init(&log_const); @@ -318,19 +320,24 @@ void logger_write_file_header(struct dump *dump) { buff = dump_get(dump, LOGGER_NBER_SIZE, file_offset); memcpy(buff, &log_const.number, LOGGER_NBER_SIZE); + /* write number of bytes used for masks */ + buff = dump_get(dump, LOGGER_MASK_SIZE, file_offset); + memcpy(buff, &log_const.mask, LOGGER_MASK_SIZE); + + /* write number of masks */ + buff = dump_get(dump, log_const.number, file_offset); + memcpy(buff, &log_const.nber_mask, log_const.number); + /* write masks */ - mask_size = log_const.nber_mask * (log_const.name + log_const.mask); - name_buff = dump_get(dump, mask_size, file_offset); + // loop over all mask type for(i=0; i<log_const.nber_mask; i++) { - j = i * (log_const.name + log_const.mask); - - // name - memcpy(name_buff, &log_const.masks_name[j], log_const.name); - name_buff += j; - + // get full mask chunk + buff = dump_get(dump, log_const.name, file_offset); + memcpy(buff, &log_const.masks_name[i], log_const.name); + // mask - memcpy(name_buff, &log_const.masks[i], log_const.mask); - name_buff += log_const.mask; + buff = dump_get(dump, log_const.mask, file_offset); + memcpy(buff, &log_const.masks[i], log_const.mask); } @@ -346,7 +353,7 @@ void logger_const_init(struct logger_const* log_const) { log_const->mask = 1; log_const->number = 1; - log_const->nber_mask = 1; + log_const->nber_mask = 8; char *cur_name; char tmp[log_const->name];