From 8d5cd7c1b89e0de5a928b1c904d4d9e957c3d35d Mon Sep 17 00:00:00 2001 From: blueloveTH Date: Fri, 8 Aug 2025 16:59:55 +0800 Subject: [PATCH] fix `random.seed` --- src/modules/random.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/modules/random.c b/src/modules/random.c index ef8bdd9c..bb9da9b8 100644 --- a/src/modules/random.c +++ b/src/modules/random.c @@ -159,10 +159,15 @@ static bool Random__init__(int argc, py_Ref argv) { static bool Random_seed(int argc, py_Ref argv) { PY_CHECK_ARGC(2); - PY_CHECK_ARG_TYPE(1, tp_int); mt19937* ud = py_touserdata(py_arg(0)); - py_i64 seed = py_toint(py_arg(1)); - mt19937__seed(ud, seed); + py_i64 seed; + if(py_isnone(&argv[1])) { + seed = time_ns(); + } else { + PY_CHECK_ARG_TYPE(1, tp_int); + seed = py_toint(py_arg(1)); + } + mt19937__seed(ud, (uint32_t)seed); py_newnone(py_retval()); return true; }