1
1

reinclude topo.h to ompi_debuggers.c and correctly access the offet of super.size in ompi_datatype_t

This commit was SVN r22161.
Этот коммит содержится в:
Terry Dontje 2009-10-28 19:12:20 +00:00
родитель 03c8b50ea5
Коммит 37de1d199f
2 изменённых файлов: 22 добавлений и 3 удалений

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

@ -392,11 +392,27 @@ int ompi_fill_in_type_info(mqs_image *image, char **message)
}
i_info->ompi_datatype_t.type = qh_type;
i_info->ompi_datatype_t.size = mqs_sizeof(qh_type);
/* XXX TODO need to check whether super.size is OK here */
ompi_field_offset(i_info->ompi_datatype_t.offset.size,
qh_type, ompi_datatype_t, super.size);
ompi_field_offset(i_info->ompi_datatype_t.offset.name,
qh_type, ompi_datatype_t, name);
/* get ompi_datatype_t super.size which requires the offset
* of super and then the offset of size in opal_datatype_t.
*/
{
size_t super_offset;
ompi_field_offset(super_offset,
qh_type, ompi_datatype_t, super);
qh_type = mqs_find_type( image, "opal_datatype_t", mqs_lang_c );
if( !qh_type ) {
missing_in_action = "opal_datatype_t";
goto type_missing;
}
ompi_field_offset(i_info->ompi_datatype_t.offset.size,
qh_type, opal_datatype_t, size);
i_info->ompi_datatype_t.offset.size += super_offset;
}
}
/* All the types are here. Let's succesfully return. */

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

@ -66,7 +66,9 @@
#include "ompi/mca/pml/base/pml_base_recvreq.h"
#include "opal/class/opal_pointer_array.h"
#include "ompi/communicator/communicator.h"
#include "ompi/mca/topo/topo.h"
#include "ompi/group/group.h"
#include "opal/datatype/opal_datatype.h"
#include "ompi/datatype/ompi_datatype.h"
#include "ompi/include/mpi.h"
@ -119,6 +121,7 @@ OMPI_DECLSPEC opal_pointer_array_t* opal_pointer_array_t_type_force_inclusion =
OMPI_DECLSPEC ompi_communicator_t* ompi_communicator_t_type_force_inclusion = NULL;
OMPI_DECLSPEC ompi_group_t* ompi_group_t_type_force_inclusion = NULL;
OMPI_DECLSPEC ompi_status_public_t* ompi_status_public_t_type_force_inclusion = NULL;
OMPI_DECLSPEC opal_datatype_t* opal_datatype_t_type_force_inclusion = NULL;
OMPI_DECLSPEC ompi_datatype_t* ompi_datatype_t_type_force_inclusion = NULL;
OMPI_DECLSPEC volatile int MPIR_debug_gate = 0;