Skip to content

Commit 20dbe89

Browse files
committed
android: Use Android bionic's arc4random_uniform (which isn't in headers but is available on all versions so far)
1 parent 97dfba0 commit 20dbe89

File tree

1 file changed

+2
-9
lines changed

1 file changed

+2
-9
lines changed

stdlib/public/stubs/LibcShims.cpp

+2-9
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ static_assert(std::is_same<ssize_t, swift::__swift_ssize_t>::value,
3030
#ifdef __ANDROID__
3131
extern "C" {
3232
extern size_t dlmalloc_usable_size(void*);
33+
// arc4random_random is missing in headers but does exist
34+
extern unsigned int arc4random_uniform(unsigned int upper_bound);
3335
}
3436
#endif
3537

@@ -73,21 +75,12 @@ size_t _swift_stdlib_malloc_size(const void *ptr) {
7375
#error No malloc_size analog known for this platform/libc.
7476
#endif
7577

76-
#ifndef __ANDROID__
7778
__swift_uint32_t _swift_stdlib_arc4random(void) { return arc4random(); }
7879

7980
__swift_uint32_t
8081
_swift_stdlib_arc4random_uniform(__swift_uint32_t upper_bound) {
8182
return arc4random_uniform(upper_bound);
8283
}
83-
#else
84-
// FIXME: Android: chosen by fair dice roll
85-
__swift_uint32_t _swift_stdlib_arc4random(void) { return 4; }
86-
__swift_uint32_t
87-
_swift_stdlib_arc4random_uniform(__swift_uint32_t upper_bound) {
88-
return 0;
89-
}
90-
#endif
9184

9285
} // namespace swift
9386

0 commit comments

Comments
 (0)