diff --git a/gm/ugm.cc b/gm/ugm.cc index 3da96bb96b2a85e27200f02b6ac582eaa8645c7e..a7a6f2a7c00c59cef1db17ecc37c37d02a77e44c 100644 --- a/gm/ugm.cc +++ b/gm/ugm.cc @@ -42,6 +42,7 @@ #include <cmath> #include <cassert> #include <errno.h> +#include <vector> #include "ugtypes.h" #include "architecture.h" @@ -6662,9 +6663,7 @@ INT NS_DIM_PREFIX MultiGridStatus (const MULTIGRID *theMG, INT gridflag, INT gre /* now collect lb info on master */ if (me == master) { - VChannelPtr *mych; - - mych = (VChannelPtr*)malloc(procs*sizeof(VChannelPtr)); + std::vector<VChannelPtr> mych(procs, nullptr); for (i=1; i<procs; i++) { @@ -6676,7 +6675,6 @@ INT NS_DIM_PREFIX MultiGridStatus (const MULTIGRID *theMG, INT gridflag, INT gre { DiscSync(mych[i]); } - free(mych); } else { @@ -9212,21 +9210,13 @@ static void CommTpls (GRID *g, INT nn, PERIODIC_ENTRIES *coordlist, int *send_nt /* communicate IDTPLs */ { - VChannelPtr *mych; - msgid *recv_msg, *send_msg; - char *com_stat; int nc,rc,error; /* establish channels */ - mych = (VChannelPtr *)GetTmpMem(MGHEAP(MYMG(g)),procs*sizeof(VChannelPtr),MarkKey); - assert(mych!=NULL); - recv_msg = (msgid *)GetTmpMem(MGHEAP(MYMG(g)),procs*sizeof(msgid),MarkKey); - assert(recv_msg!=NULL); - send_msg = (msgid *)GetTmpMem(MGHEAP(MYMG(g)),procs*sizeof(msgid),MarkKey); - assert(send_msg!=NULL); - com_stat = (char *)GetTmpMem(MGHEAP(MYMG(g)),procs*sizeof(char),MarkKey); - assert(com_stat!=NULL); - memset(com_stat,0,procs*sizeof(char)); + std::vector<VChannelPtr> mych(procs, nullptr); + std::vector<msgid> recv_msg(procs, PPIF::NO_MSGID); + std::vector<msgid> send_msg(procs, PPIF::NO_MSGID); + std::vector<char> com_stat(procs, 0); nc = 0; for (i=0; i<procs; i++)