From 22d391dc637dd756fdcdfc0ece4a71753b5b2ddb Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Sat, 10 Dec 2022 13:54:53 +1300 Subject: Add spec for fiber storage. (#6896) --- cont.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'cont.c') diff --git a/cont.c b/cont.c index e050deefdc..49629efd90 100644 --- a/cont.c +++ b/cont.c @@ -2090,10 +2090,17 @@ fiber_storage_validate_each(VALUE key, VALUE value, VALUE _argument) static void fiber_storage_validate(VALUE value) { + // nil is an allowed value and will be lazily initialized. + if (value == Qnil) return; + if (!RB_TYPE_P(value, T_HASH)) { rb_raise(rb_eTypeError, "storage must be a hash"); } + if (RB_OBJ_FROZEN(value)) { + rb_raise(rb_eFrozenError, "storage must not be frozen"); + } + rb_hash_foreach(value, fiber_storage_validate_each, Qundef); } -- cgit v1.2.1