From 72105b2aed59a676e66b9a05a945344024df04f3 Mon Sep 17 00:00:00 2001 From: Celine Mercier Date: Tue, 22 Sep 2015 10:27:17 +0200 Subject: [PATCH] fixed the computation of the data size when cloning a column --- src/obidmscolumn.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/obidmscolumn.c b/src/obidmscolumn.c index 23fbd52..e623ceb 100644 --- a/src/obidmscolumn.c +++ b/src/obidmscolumn.c @@ -908,7 +908,7 @@ OBIDMS_column_p obi_open_column(OBIDMS_p dms, const char* column_name, obiversio return NULL; } - // Check endianness? + // TODO Check endianness? // Compute data size from the informations in the header data_size = ((column->header)->line_count) * sizeof((column->header)->data_type); @@ -947,6 +947,7 @@ OBIDMS_column_p obi_clone_column(OBIDMS_p dms, const char* column_name, obiversi OBIDMS_column_p new_column; size_t nb_lines; size_t nb_elements_per_line; + size_t data_size; OBIType_t data_type; column_to_clone = obi_open_column(dms, column_name, version_number); @@ -984,12 +985,13 @@ OBIDMS_column_p obi_clone_column(OBIDMS_p dms, const char* column_name, obiversi } (new_column->header)->cloned_from = version_number; - // TODO copy header->comments? + //memcpy((new_column->header)->comments, (column_to_clone->header)->comments, obi_get_platform_header_size() - //??(column_to_clone->header)->comments); // TODO if (clone_data) { - memcpy(new_column->data, column_to_clone->data, nb_lines*nb_elements_per_line*sizeof(data_type)); - (new_column->header)->lines_used = nb_lines; + data_size = obi_array_sizeof(data_type, nb_lines, nb_elements_per_line); + memcpy(new_column->data, column_to_clone->data, data_size); + (new_column->header)->lines_used = (column_to_clone->header)->lines_used; } // close column_to_clone