static std::unordered_map<std::string, simgrid::smpi::Datatype*> id2type_lookup;
#define CREATE_MPI_DATATYPE(name, id, type) \
- static simgrid::smpi::Datatype _XBT_CONCAT(mpi_, name)((char*)_XBT_STRINGIFY(name), id, sizeof(type), /* size */ \
- 0, /* lb */ \
+ static simgrid::smpi::Datatype _XBT_CONCAT(mpi_, name)((char*)_XBT_STRINGIFY(name), (id), sizeof(type), /* size */ \
+ 0, /* lb */ \
sizeof(type), /* ub = lb + size */ \
DT_FLAG_BASIC /* flags */ \
); \
const MPI_Datatype name = &_XBT_CONCAT(mpi_, name);
#define CREATE_MPI_DATATYPE_NULL(name, id) \
- static simgrid::smpi::Datatype _XBT_CONCAT(mpi_, name)((char*)_XBT_STRINGIFY(name), id, 0, /* size */ \
- 0, /* lb */ \
- 0, /* ub = lb + size */ \
- DT_FLAG_BASIC /* flags */ \
+ static simgrid::smpi::Datatype _XBT_CONCAT(mpi_, name)((char*)_XBT_STRINGIFY(name), (id), 0, /* size */ \
+ 0, /* lb */ \
+ 0, /* ub = lb + size */ \
+ DT_FLAG_BASIC /* flags */ \
); \
const MPI_Datatype name = &_XBT_CONCAT(mpi_, name);
{
flags_ &= ~DT_FLAG_PREDEFINED;
*ret = MPI_SUCCESS;
- if(datatype->name_)
- name_ = xbt_strdup(datatype->name_);
if (not datatype->attributes()->empty()) {
int flag=0;
}
void Datatype::get_name(char* name, int* length){
- *length = strlen(name_);
- strncpy(name, name_, *length+1);
+ if(name_!=nullptr){
+ *length = strlen(name_);
+ strncpy(name, name_, *length+1);
+ }else{
+ *length = 0;
+ }
}
void Datatype::set_name(const char* name){