Method: Array#freeze
- Defined in:
- array.c
#freeze ⇒ self
Freezes self
(if not already frozen); returns self
:
a = []
a.frozen? # => false
a.freeze
a.frozen? # => true
No further changes may be made to self
; raises FrozenError if a change is attempted.
Related: Kernel#frozen?.
641 642 643 644 645 646 647 648 649 650 651 652 653 |
# File 'array.c', line 641
VALUE
rb_ary_freeze(VALUE ary)
{
RUBY_ASSERT(RB_TYPE_P(ary, T_ARRAY));
if (OBJ_FROZEN(ary)) return ary;
if (!ARY_EMBED_P(ary) && !ARY_SHARED_P(ary) && !ARY_SHARED_ROOT_P(ary)) {
ary_shrink_capa(ary);
}
return rb_obj_freeze(ary);
}
|