Skip to content

Commit 7f7b90d

Browse files
Cleanup group code.
Signed-off-by: Samuel K. Gutierrez <[email protected]>
1 parent c924ef2 commit 7f7b90d

File tree

2 files changed

+20
-21
lines changed

2 files changed

+20
-21
lines changed

src/qvi-group.cc

+2-6
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
#include "qvi-common.h" // IWYU pragma: keep
1515
#include "qvi-group.h"
16+
#include "qvi-utils.h"
1617
#include "qvi-log.h"
1718

1819
/**
@@ -37,12 +38,7 @@ void
3738
qvi_group_free(
3839
qvi_group_t **group
3940
) {
40-
if (!group) return;
41-
qvi_group_t *igroup = *group;
42-
if (!igroup) goto out;
43-
delete igroup;
44-
out:
45-
*group = nullptr;
41+
qvi_delete(group);
4642
}
4743

4844
/*

src/qvi-mpi.cc

+18-15
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ using qvi_mpi_group_tab_t = std::unordered_map<
2626
>;
2727

2828
struct qvi_mpi_group_s {
29+
int qvim_rc = QV_SUCCESS;
2930
/** ID used for table lookups */
3031
qvi_mpi_group_id_t tabid = 0;
3132
/** ID (rank) in group */
@@ -34,6 +35,20 @@ struct qvi_mpi_group_s {
3435
int size = 0;
3536
/** MPI communicator */
3637
MPI_Comm mpi_comm = MPI_COMM_NULL;
38+
/** Constructor */
39+
qvi_mpi_group_s(void) = default;
40+
/** Destructor */
41+
~qvi_mpi_group_s(void) = default;
42+
/** Assignment operator. */
43+
void operator=
44+
(const qvi_mpi_group_s &src)
45+
{
46+
qvim_rc = src.qvim_rc;
47+
tabid = src.tabid;
48+
id = src.id;
49+
size = src.size;
50+
mpi_comm = src.mpi_comm;
51+
}
3752
};
3853

3954
struct qvi_mpi_s {
@@ -81,8 +96,7 @@ cp_mpi_group(
8196
const qvi_mpi_group_t *src,
8297
qvi_mpi_group_t *dst
8398
) {
84-
static_assert(std::is_trivially_copyable<qvi_mpi_group_t>::value, "");
85-
memmove(dst, src, sizeof(*src));
99+
*dst = *src;
86100
}
87101

88102
/**
@@ -422,25 +436,14 @@ int
422436
qvi_mpi_group_new(
423437
qvi_mpi_group_t **group
424438
) {
425-
int rc = QV_SUCCESS;
426-
427-
qvi_mpi_group_t *igroup = qvi_new qvi_mpi_group_t();
428-
if (!igroup) rc = QV_ERR_OOR;
429-
430-
*group = igroup;
431-
return rc;
439+
return qvi_new_rc(group);
432440
}
433441

434442
void
435443
qvi_mpi_group_free(
436444
qvi_mpi_group_t **group
437445
) {
438-
if (!group) return;
439-
qvi_mpi_group_t *igroup = *group;
440-
if (!igroup) goto out;
441-
delete igroup;
442-
out:
443-
*group = nullptr;
446+
qvi_delete(group);
444447
}
445448

446449
int

0 commit comments

Comments
 (0)