1
1

Take out the checks for NULL and STATUS[ES]_IGNORE -- it turns out

that a) STATUS[ES]_IGNORE *is* NULL, and b) ROMIO blindly sends its
status through to STATUS_SET_ELEMENTS, even if the status is IGNORE.
So we have some legal cases where IGNORE can be passed through here.

Well, that's what we get for trying to do good error checking.  :-(

This commit was SVN r12999.
Этот коммит содержится в:
Jeff Squyres 2007-01-04 23:03:36 +00:00
родитель 75df4ca602
Коммит fc3637a7c6

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

@ -9,6 +9,7 @@
* University of Stuttgart. All rights reserved.
* Copyright (c) 2004-2005 The Regents of the University of California.
* All rights reserved.
* Copyright (c) 2007 Cisco Systems, Inc. All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
@ -44,14 +45,16 @@ int MPI_Status_set_elements(MPI_Status *status, MPI_Datatype datatype,
rc = MPI_ERR_TYPE;
} else if (count < 0) {
rc = MPI_ERR_COUNT;
} else if (NULL == status ||
MPI_STATUS_IGNORE == status ||
MPI_STATUSES_IGNORE == status) {
rc = MPI_ERR_ARG;
}
OMPI_ERRHANDLER_CHECK(rc, MPI_COMM_WORLD, rc, FUNC_NAME);
}
/* ROMIO calls MPI_STATUS_SET_ELEMENTS with IGNORE values, so we
need to allow it. Blah! */
if (MPI_STATUS_IGNORE == status || MPI_STATUSES_IGNORE == status) {
return MPI_SUCCESS;
}
if( ompi_ddt_is_predefined(datatype) ) {
ompi_ddt_type_size( datatype, &size );
status->_count = (int)(count * size);