From edc2fa9141ac8f76c84d7a2989b688c9743b6409 Mon Sep 17 00:00:00 2001 From: George Bosilca Date: Mon, 5 Jun 2006 21:57:28 +0000 Subject: [PATCH] Allow zero count contiguous data-types. And be user friendly, set the ub, lb, true_lb and true_ub to zero. This commit was SVN r10212. --- ompi/datatype/dt_create_dup.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/ompi/datatype/dt_create_dup.c b/ompi/datatype/dt_create_dup.c index 4d5700011b..755a41afc9 100644 --- a/ompi/datatype/dt_create_dup.c +++ b/ompi/datatype/dt_create_dup.c @@ -63,8 +63,15 @@ int32_t ompi_ddt_duplicate( const ompi_datatype_t* oldType, ompi_datatype_t** ne int32_t ompi_ddt_create_contiguous( int count, const ompi_datatype_t* oldType, ompi_datatype_t** newType ) { - ompi_datatype_t* pdt = ompi_ddt_create( oldType->desc.used + 2 ); - ompi_ddt_add( pdt, oldType, count, 0, (oldType->ub - oldType->lb) ); - *newType = pdt; - return OMPI_SUCCESS; + ompi_datatype_t* pdt; + + if( 0 == count ) { + pdt = ompi_ddt_create( 0 ); + ompi_ddt_add( pdt, &ompi_mpi_datatype_null, 0, 0, 0 ); + } else { + pdt = ompi_ddt_create( oldType->desc.used + 2 ); + ompi_ddt_add( pdt, oldType, count, 0, (oldType->ub - oldType->lb) ); + } + *newType = pdt; + return OMPI_SUCCESS; }