fixed the computation of the data size when cloning a column

This commit is contained in:
Celine Mercier
2015-09-22 10:27:17 +02:00
parent 9ab8a42340
commit 72105b2aed

View File

@ -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