diff options
Diffstat (limited to 'src/Storage.c')
-rw-r--r-- | src/Storage.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/Storage.c b/src/Storage.c index cbdf47d..0146b07 100644 --- a/src/Storage.c +++ b/src/Storage.c @@ -628,9 +628,17 @@ static int PUGH_EnableGArrayGroupStorage (pGH *pughGH, else if (! my_padding_active) { /* Easy case. */ - GA->data = malloc ((size_t) GA->extras->npoints * GA->varsize - * GA->vector_size); - GA->padddata = GA->data; + size_t align = PUGH_GetVectorSize() * GA->varsize; + GA->padddata = malloc ((size_t) GA->extras->npoints * GA->varsize + * GA->vector_size + align-1); + if (((size_t) GA->padddata) % align) + { + GA->data = (char *) GA->padddata + align - (((size_t) GA->padddata) % align); + } + else + { + GA->data = GA->padddata; + } } else { |