Skip to content

Commit e90b091

Browse files
committed
Fix refing static arrays.
- Do not manipulation the memptr but add to data_offset.
1 parent 6c4b523 commit e90b091

File tree

1 file changed

+8
-9
lines changed

1 file changed

+8
-9
lines changed

src/mpi/mpi_caf.c

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4673,8 +4673,8 @@ PREFIX(get_by_ref) (caf_token_t token, int image_index,
46734673
size = 1;
46744674
while (riter)
46754675
{
4676-
dprint("caf_ref = %p, offset = %zd, remote_mem = %p, global_win(data, desc)) = (%d, %d)\n",
4677-
riter, data_offset, remote_memptr, access_data_through_global_win,
4676+
dprint("caf_ref = %p, type = %d, offset = %zd, remote_mem = %p, global_win(data, desc)) = (%d, %d)\n",
4677+
riter, riter->type, data_offset, remote_memptr, access_data_through_global_win,
46784678
access_desc_through_global_win);
46794679
switch (riter->type)
46804680
{
@@ -4996,7 +4996,7 @@ case kind: \
49964996
delta = riter->u.a.dim[i].v.nvec;
49974997
#define KINDCASE(kind, type) \
49984998
case kind: \
4999-
remote_memptr += \
4999+
data_offset += \
50005000
((type *)riter->u.a.dim[i].v.vector)[0] * riter->item_size; \
50015001
break
50025002

@@ -5026,15 +5026,14 @@ case kind: \
50265026
riter->u.a.dim[i].s.stride,
50275027
riter->u.a.dim[i].s.start,
50285028
riter->u.a.dim[i].s.end);
5029-
remote_memptr += riter->u.a.dim[i].s.start
5030-
* riter->u.a.dim[i].s.stride
5031-
* riter->item_size;
5029+
data_offset += riter->u.a.dim[i].s.start
5030+
* riter->u.a.dim[i].s.stride
5031+
* riter->item_size;
50325032
break;
50335033
case CAF_ARR_REF_SINGLE:
50345034
delta = 1;
5035-
remote_memptr += riter->u.a.dim[i].s.start
5036-
* riter->u.a.dim[i].s.stride
5037-
* riter->item_size;
5035+
data_offset += riter->u.a.dim[i].s.start
5036+
* riter->item_size;
50385037
break;
50395038
case CAF_ARR_REF_OPEN_END:
50405039
/* This and OPEN_START are mapped to a RANGE and therefore can

0 commit comments

Comments
 (0)