aboutsummaryrefslogtreecommitdiff
path: root/src/Storage.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/Storage.c')
-rw-r--r--src/Storage.c14
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
{