diff options
-rw-r--r-- | flam3.c | 4 | ||||
-rw-r--r-- | rect.c | 17 |
2 files changed, 17 insertions, 4 deletions
@@ -35,6 +35,7 @@ #include <unistd.h> #endif #include <errno.h> +#include <assert.h> #include <pthread.h> @@ -3259,7 +3260,8 @@ int flam3_estimate_bounding_box(flam3_genome *cp, double eps, int nsamples, if (nsamples <= 0) nsamples = 10000; - points = (double4 *) malloc(sizeof(double4) * nsamples); + int ret = posix_memalign ((void **) &points, sizeof (*points), sizeof(*points) * nsamples); + assert (ret == 0 && points != NULL); const double4 start = (double4) { rand_d11(rc), rand_d11(rc), 0.0, 0.0 }; if (prepare_precalc_flags(cp)) @@ -17,6 +17,7 @@ */ #include <assert.h> +#include <stdlib.h> #include "private.h" #include "filters.h" @@ -380,14 +381,24 @@ int render_rectangle(flam3_frame *spec, void *out, nbuckets = (long)fic.width * (long)fic.height; - double4 * const buckets = malloc (nbuckets * sizeof (*buckets)); + double4 *buckets; + int ret = posix_memalign ((void **) &buckets, sizeof (*buckets), + nbuckets * sizeof (*buckets)); + assert (ret == 0); assert (buckets != NULL); - double4 * const accumulate = malloc (nbuckets * sizeof (*accumulate)); + double4 *accumulate; + ret = posix_memalign ((void **) &accumulate, sizeof (*accumulate), + nbuckets * sizeof (*accumulate)); + assert (ret == 0); assert (accumulate != NULL); double4 ** const iter_storage = malloc (spec->nthreads * sizeof (*iter_storage)); assert (iter_storage != NULL); for (size_t i = 0; i < spec->nthreads; i++) { - iter_storage[i] = malloc (spec->sub_batch_size * sizeof (*iter_storage[i])); + ret = posix_memalign ((void **) &iter_storage[i], + sizeof (*iter_storage[i]), + spec->sub_batch_size * sizeof (*iter_storage[i])); + assert (ret == 0); + assert (iter_storage[i] != NULL); } if (verbose) { |