return (flags_ & DT_FLAG_BASIC);
}
+bool Datatype::is_replayable()
+{
+ return ((this==MPI_BYTE)||(this==MPI_DOUBLE)||(this==MPI_INT)||
+ (this==MPI_CHAR)||(this==MPI_SHORT)||(this==MPI_LONG)||(this==MPI_FLOAT));
+}
+
size_t Datatype::size(){
return size_;
}
if (not smpi_process()->replaying())
memcpy(recvbuf, sendbuf, count);
} else if (not(sendtype->flags() & DT_FLAG_DERIVED)) {
- recvtype->unserialize( sendbuf, recvbuf, recvcount/recvtype->size(), MPI_REPLACE);
+ recvtype->unserialize(sendbuf, recvbuf, count / recvtype->size(), MPI_REPLACE);
} else if (not(recvtype->flags() & DT_FLAG_DERIVED)) {
- sendtype->serialize(sendbuf, recvbuf, sendcount/sendtype->size());
+ sendtype->serialize(sendbuf, recvbuf, count / sendtype->size());
}else{
void * buf_tmp = xbt_malloc(count);