From 68b34cf00b8a52509c0bed7b1e66b3e40de0c4f5 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Sat, 3 Aug 2024 17:33:18 -0400 Subject: Fix array:random() to return a random item using correct RNG logic, rather than a reference. --- builtins/array.h | 1 + 1 file changed, 1 insertion(+) (limited to 'builtins/array.h') diff --git a/builtins/array.h b/builtins/array.h index c05aeae9..6d5c3015 100644 --- a/builtins/array.h +++ b/builtins/array.h @@ -60,6 +60,7 @@ void Array$sort(array_t *arr, closure_t comparison, int64_t padded_item_size); array_t Array$sorted(array_t arr, closure_t comparison, int64_t padded_item_size); void Array$shuffle(array_t *arr, int64_t padded_item_size); void *Array$random(array_t arr); +#define Array$random_value(arr, t) ({ array_t _arr = arr; if (_arr.length == 0) fail("Cannot get a random value from an empty array!"); *(t*)Array$random(_arr); }) array_t Array$sample(array_t arr, int64_t n, array_t weights, int64_t padded_item_size); void Array$clear(array_t *array); void Array$compact(array_t *arr, int64_t padded_item_size); -- cgit v1.2.3