comm);
}
- free(tmp_buf);
+ smpi_free_tmp_buffer(tmp_buf);
return MPI_SUCCESS;
}
}
/* Finally, fill up the src array */
if(recv_iter > 0) {
- knomial_reduce_src_array = static_cast<int*>(smpi_get_tmp_sendbuffer(sizeof(int)*recv_iter));
+ knomial_reduce_src_array = new int[recv_iter];
}
mask = orig_mask;
}
if(src_array != NULL) {
- xbt_free(src_array);
+ delete[] src_array;
}
if(rank != root) {
error_hndl: /* error handler */
XBT_DEBUG("ERROR_HNDL: node %d file %s line %d error %d\n",
rank, __FILE__, line, ret );
- if( inbuf_free[0] != NULL ) free(inbuf_free[0]);
- if( inbuf_free[1] != NULL ) free(inbuf_free[1]);
- if( accumbuf_free != NULL ) free(accumbuf);
+ smpi_free_tmp_buffer(inbuf_free[0]);
+ smpi_free_tmp_buffer(inbuf_free[1]);
+ smpi_free_tmp_buffer(accumbuf);
return ret;
}
err_hndl:
if (NULL != tempbuf)
- free(tempbuf);
+ smpi_free_tmp_buffer(tempbuf);
XBT_DEBUG("%s:%4d\tError occurred %d, rank %2d", __FILE__, line, err, rank);
return err;
int index = 0;
for (int src = 0; src < size; src++) {
if (src != root) {
- if (not smpi_process()->replaying())
- tmpbufs[index] = xbt_malloc(count * dataext);
- else
- tmpbufs[index] = smpi_get_tmp_sendbuffer(count * dataext);
+ tmpbufs[index] = smpi_get_tmp_sendbuffer(count * dataext);
requests[index] =
Request::irecv_init(tmpbufs[index], count, datatype, src, system_tag, comm);
index++;