Copy the packed buffer when we duplicate a basic datatype.
This commit was SVN r8931.
Этот коммит содержится в:
родитель
e3ded6f8cf
Коммит
f96f9afc27
@ -27,27 +27,28 @@ static void __get_free_dt_struct( ompi_datatype_t* pData )
|
||||
{
|
||||
int i;
|
||||
|
||||
pData->size = 0;
|
||||
pData->id = 0;
|
||||
pData->nbElems = 0;
|
||||
pData->bdt_used = 0;
|
||||
pData->size = 0;
|
||||
pData->id = 0;
|
||||
pData->nbElems = 0;
|
||||
pData->bdt_used = 0;
|
||||
for( i = 0; i < DT_MAX_PREDEFINED; i++ )
|
||||
pData->btypes[i] = 0;
|
||||
pData->btypes[DT_LOOP] = 0;
|
||||
pData->btypes[i] = 0;
|
||||
pData->btypes[DT_LOOP] = 0;
|
||||
|
||||
pData->opt_desc.desc = NULL;
|
||||
pData->opt_desc.length = 0;
|
||||
pData->opt_desc.used = 0;
|
||||
pData->args = NULL;
|
||||
pData->align = 1;
|
||||
pData->flags = DT_FLAG_CONTIGUOUS;
|
||||
pData->true_lb = LONG_MAX;
|
||||
pData->true_ub = LONG_MIN;
|
||||
pData->lb = LONG_MAX;
|
||||
pData->ub = LONG_MIN;
|
||||
pData->d_f_to_c_index = ompi_pointer_array_add(ompi_datatype_f_to_c_table, pData);
|
||||
pData->d_keyhash = NULL;
|
||||
pData->name[0] = '\0';
|
||||
pData->opt_desc.desc = NULL;
|
||||
pData->opt_desc.length = 0;
|
||||
pData->opt_desc.used = 0;
|
||||
pData->args = NULL;
|
||||
pData->align = 1;
|
||||
pData->flags = DT_FLAG_CONTIGUOUS;
|
||||
pData->true_lb = LONG_MAX;
|
||||
pData->true_ub = LONG_MIN;
|
||||
pData->lb = LONG_MAX;
|
||||
pData->ub = LONG_MIN;
|
||||
pData->d_f_to_c_index = ompi_pointer_array_add(ompi_datatype_f_to_c_table, pData);
|
||||
pData->d_keyhash = NULL;
|
||||
pData->name[0] = '\0';
|
||||
pData->packed_description = NULL;
|
||||
}
|
||||
|
||||
static void __destroy_ddt_struct( ompi_datatype_t* datatype )
|
||||
|
@ -288,6 +288,8 @@ int ompi_ddt_local_sizes[DT_MAX_PREDEFINED];
|
||||
if( (PDST)->opt_desc.desc != NULL ) \
|
||||
free( (PDST)->opt_desc.desc ); \
|
||||
(PDST)->opt_desc = (PSRC)->opt_desc; \
|
||||
(PDST)->packed_description = (PSRC)->packed_description; \
|
||||
(PSRC)->packed_description = NULL; \
|
||||
memcpy( (PDST)->btypes, (PSRC)->btypes, \
|
||||
DT_MAX_PREDEFINED * sizeof(uint32_t) ); \
|
||||
} while(0)
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user