1
1

Correctly (I hope) compute the contiguous flag. There is still a big question about the overlap flag:

should I compute it here with les precision or should be done in the commit phase. Anyway correctly
detecting the overlap is a difficult problem.

This commit was SVN r4394.
Этот коммит содержится в:
George Bosilca 2005-02-11 06:32:38 +00:00
родитель 194f764ad2
Коммит f24afe3bf8

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

@ -165,7 +165,8 @@ int ompi_ddt_add( dt_desc_t* pdtBase, const dt_desc_t* pdtAdd,
/* should I add some space until the extent of this datatype ? */
}
old_true_ub = pdtBase->true_ub;
if( 0 == pdtBase->nbElems ) old_true_ub = disp;
else old_true_ub = pdtBase->true_ub;
pdtBase->size += count * pdtAdd->size;
pdtBase->true_lb = LMIN( pdtBase->true_lb, pdtAdd->true_lb + disp );
pdtBase->true_ub = LMAX( pdtBase->true_ub,
@ -177,7 +178,7 @@ int ompi_ddt_add( dt_desc_t* pdtBase, const dt_desc_t* pdtAdd,
* In other words to avoid having internal gaps between elements. And the datatypes
* should ALWAYS follow each other.
*/
if( disp != pdtBase->true_ub ) { /* add the initial gap */
if( disp != old_true_ub ) { /* is there a gap between the 2 datatypes ? */
if( disp < old_true_ub ) pdtBase->flags |= DT_FLAG_OVERLAP;
UNSET_CONTIGUOUS_FLAG(pdtBase->flags);
} else {