1
1

For contiguous datatype set the type in the stack and compute the displacement depending

on the basic type where we have to start.

This commit was SVN r6497.
Этот коммит содержится в:
George Bosilca 2005-07-14 19:27:58 +00:00
родитель 76e287a29a
Коммит 1dfbd0e296

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

@ -124,6 +124,7 @@ int ompi_convertor_create_stack_with_pos_contig( ompi_convertor_t* pConvertor,
pStack = pConvertor->pStack; pStack = pConvertor->pStack;
pStack[0].type = DT_LOOP; /* the first one is always the loop */
pStack[0].count = pConvertor->count; pStack[0].count = pConvertor->count;
pStack[0].index = -1; pStack[0].index = -1;
@ -143,13 +144,20 @@ int ompi_convertor_create_stack_with_pos_contig( ompi_convertor_t* pConvertor,
/* now compute the number of pending bytes */ /* now compute the number of pending bytes */
count = starting_point - count * pData->size; count = starting_point - count * pData->size;
pStack[1].index = 0; /* useless */
pStack[1].count = pData->size - count;
pStack[1].end_loop = 0; /* useless */
/* we save the current displacement starting from the begining /* we save the current displacement starting from the begining
* of this data. * of this data.
*/ */
pStack[1].disp = pData->true_lb + count; if( 0 == count ) {
pStack[1].type = pElems->elem.common.type;
pStack[1].count = pElems->elem.count;
pStack[1].disp = pElems->elem.disp;
} else {
pStack[1].type = DT_BYTE;
pStack[1].count = pData->size - count;
pStack[1].disp = pData->true_lb + count;
}
pStack[1].index = 0; /* useless */
pStack[1].end_loop = 0; /* useless */
pConvertor->bConverted = starting_point; pConvertor->bConverted = starting_point;
pConvertor->stack_pos = 1; pConvertor->stack_pos = 1;