1
1

Copy the packed buffer when we duplicate a basic datatype.

This commit was SVN r8931.
Этот коммит содержится в:
George Bosilca 2006-02-08 05:08:39 +00:00
родитель e3ded6f8cf
Коммит f96f9afc27
2 изменённых файлов: 22 добавлений и 19 удалений

Просмотреть файл

@ -27,27 +27,28 @@ static void __get_free_dt_struct( ompi_datatype_t* pData )
{ {
int i; int i;
pData->size = 0; pData->size = 0;
pData->id = 0; pData->id = 0;
pData->nbElems = 0; pData->nbElems = 0;
pData->bdt_used = 0; pData->bdt_used = 0;
for( i = 0; i < DT_MAX_PREDEFINED; i++ ) for( i = 0; i < DT_MAX_PREDEFINED; i++ )
pData->btypes[i] = 0; pData->btypes[i] = 0;
pData->btypes[DT_LOOP] = 0; pData->btypes[DT_LOOP] = 0;
pData->opt_desc.desc = NULL; pData->opt_desc.desc = NULL;
pData->opt_desc.length = 0; pData->opt_desc.length = 0;
pData->opt_desc.used = 0; pData->opt_desc.used = 0;
pData->args = NULL; pData->args = NULL;
pData->align = 1; pData->align = 1;
pData->flags = DT_FLAG_CONTIGUOUS; pData->flags = DT_FLAG_CONTIGUOUS;
pData->true_lb = LONG_MAX; pData->true_lb = LONG_MAX;
pData->true_ub = LONG_MIN; pData->true_ub = LONG_MIN;
pData->lb = LONG_MAX; pData->lb = LONG_MAX;
pData->ub = LONG_MIN; pData->ub = LONG_MIN;
pData->d_f_to_c_index = ompi_pointer_array_add(ompi_datatype_f_to_c_table, pData); pData->d_f_to_c_index = ompi_pointer_array_add(ompi_datatype_f_to_c_table, pData);
pData->d_keyhash = NULL; pData->d_keyhash = NULL;
pData->name[0] = '\0'; pData->name[0] = '\0';
pData->packed_description = NULL;
} }
static void __destroy_ddt_struct( ompi_datatype_t* datatype ) 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 ) \ if( (PDST)->opt_desc.desc != NULL ) \
free( (PDST)->opt_desc.desc ); \ free( (PDST)->opt_desc.desc ); \
(PDST)->opt_desc = (PSRC)->opt_desc; \ (PDST)->opt_desc = (PSRC)->opt_desc; \
(PDST)->packed_description = (PSRC)->packed_description; \
(PSRC)->packed_description = NULL; \
memcpy( (PDST)->btypes, (PSRC)->btypes, \ memcpy( (PDST)->btypes, (PSRC)->btypes, \
DT_MAX_PREDEFINED * sizeof(uint32_t) ); \ DT_MAX_PREDEFINED * sizeof(uint32_t) ); \
} while(0) } while(0)