Skip to content

Commit 65fbeec

Browse files
committed
Keep posix_memalign() around for older Android APIs
1 parent bb1cb6a commit 65fbeec

File tree

3 files changed

+13
-0
lines changed

3 files changed

+13
-0
lines changed

src/io.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2373,6 +2373,11 @@ _dispatch_operation_perform(dispatch_operation_t op)
23732373
bQueried = true;
23742374
}
23752375
op->buf = _aligned_malloc(op->buf_siz, siInfo.dwPageSize);
2376+
#elif defined(__ANDROID_API__) && __ANDROID_API__ < 28
2377+
err = posix_memalign(&op->buf, (size_t)PAGE_SIZE, op->buf_siz);
2378+
if (err != 0) {
2379+
goto error;
2380+
}
23762381
#else
23772382
op->buf = aligned_alloc((size_t)PAGE_SIZE, op->buf_siz)
23782383
#endif

tests/dispatch_io.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,11 @@ test_async_read(char *path, size_t size, int option, dispatch_queue_t queue,
398398
buffer = _aligned_malloc(size, si.dwPageSize);
399399
#else
400400
size_t pagesize = (size_t)sysconf(_SC_PAGESIZE);
401+
#if defined(__ANDROID_API__) && __ANDROID_API__ < 28
402+
posix_memalign((void **)&buffer, pagesize, size);
403+
#else
401404
buffer = aligned_alloc(pagesize, size);
405+
#endif
402406
#endif
403407
ssize_t r = dispatch_test_fd_read(fd, buffer, size);
404408
if (r == -1) {

tests/dispatch_read2.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,11 @@ dispatch_read2(dispatch_fd_t fd,
9191
buffer = _aligned_malloc(bufsiz, pagesize);
9292
#else
9393
size_t pagesize = (size_t)sysconf(_SC_PAGESIZE);
94+
#if defined(__ANDROID_API__) && __ANDROID_API__ < 28
95+
posix_memalign((void **)&buffer, pagesize, bufsiz);
96+
#else
9497
buffer = aligned_alloc(pagesize, bufsiz);
98+
#endif
9599
#endif
96100
ssize_t actual = dispatch_test_fd_read(fd, buffer, bufsiz);
97101
if (actual == -1) {

0 commit comments

Comments
 (0)