Skip to content
Snippets Groups Projects
Commit 9114ab3e authored by Thomas Jahns's avatar Thomas Jahns :cartwheel: Committed by Sergey Kosukhin
Browse files

Extract function.

parent 02c13c23
No related branches found
No related tags found
No related merge requests found
......@@ -452,6 +452,15 @@ cdiPioNetCDFParChunk(int vlistID, int varID, Xt_idxlist *preWriteChunk, struct P
}
#endif
static void
allocUIDLookup(size_t numClients, Xt_uid *restrict *uids, int *restrict *partSizes)
{
size_t uidBytes = sizeof(**uids) * (numClients + 1), partSizesBytes = sizeof(**partSizes) * (numClients + 1),
partSizeAlign = sizeof(**partSizes), uidBytesRoundUp = ((uidBytes + partSizeAlign - 1) / partSizeAlign * partSizeAlign);
*uids = Malloc(uidBytes + uidBytesRoundUp + partSizesBytes);
*partSizes = (int *) (void *) ((unsigned char *) *uids + uidBytes + uidBytesRoundUp);
}
static Xt_redist
buildVarRedist(int headerIdx, size_t streamIdx,
/* index list representing the data elements gathered on
......@@ -473,12 +482,7 @@ buildVarRedist(int headerIdx, size_t streamIdx,
bool cacheXmaps = conf->cacheXmaps;
if (cacheXmaps)
{
{
size_t uidBytes = sizeof(*uids) * (numClients + 1), partSizesBytes = sizeof(*partSizes) * (numClients + 1),
partSizeAlign = sizeof(*partSizes), uidBytesRoundUp = (uidBytes + partSizeAlign - 1) / partSizeAlign * partSizeAlign;
uids = Malloc(uidBytes + uidBytesRoundUp + partSizesBytes);
partSizes = (int *) (void *) ((unsigned char *) uids + uidBytes + uidBytesRoundUp);
}
allocUIDLookup(numClients, &uids, &partSizes);
uids[0] = xt_idxlist_get_uid(dstList);
for (size_t clientIdx = 0; clientIdx < numClients; ++clientIdx)
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment