aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@gmail.com>2013-08-08 13:52:11 -0400
committerErik Schnetter <schnetter@gmail.com>2013-08-08 13:52:11 -0400
commit9d85fef489365db1e205e906c80507854540ad06 (patch)
tree448eb7e87db5543c92aaf8c66861e15bb35fc0b3
parent6b415f376d2470aebb13e678d14e475e7c80a505 (diff)
CarpetLib: Use malloc (again) instead of posix_memalign
-rw-r--r--Carpet/CarpetLib/src/mem.cc11
1 files changed, 6 insertions, 5 deletions
diff --git a/Carpet/CarpetLib/src/mem.cc b/Carpet/CarpetLib/src/mem.cc
index 113bdb53a..ddbe0c73b 100644
--- a/Carpet/CarpetLib/src/mem.cc
+++ b/Carpet/CarpetLib/src/mem.cc
@@ -118,9 +118,10 @@ mem (size_t const vectorlength, size_t const nelems,
int(max_allowed_memory_MB));
}
- void* ptr;
- const int ierr = posix_memalign(&ptr, alignment, nbytes);
- if (ierr) {
+ // void* ptr;
+ // const int ierr = posix_memalign(&ptr, alignment, nbytes);
+ void* ptr = malloc(nbytes + alignment - 1);
+ if (not ptr) {
T Tdummy;
CCTK_VError(__LINE__, __FILE__, CCTK_THORNSTRING,
"Failed to allocate %.0f bytes (%.3f MB) of memory for type %s. %.0f bytes (%.3f MB) are currently allocated in %d objects",
@@ -132,8 +133,8 @@ mem (size_t const vectorlength, size_t const nelems,
}
storage_base_ = (T*)ptr;
- storage_ = storage_base_;
- assert(not (size_t(storage_) & (alignment-1)));
+ storage_ = (T*)align_up(size_t(ptr), alignment);
+ assert(size_t(storage_) % alignment == 0);
owns_storage_ = true;
total_allocated_bytes += nbytes;