free -> selfRuby 3.1 から[permalink][rdoc][edit]-
バッファが確保しているメモリ領域を解放します。
解放の内容はバッファの種類によって異なります。
- 内部(internal) -- 確保したメモリを解放します。
- 外部(external) -- 元のオブジェクトとの関連を解消します。
- マップ(mapped) -- マッピングを解除します。
解放後は、どのメモリ領域も指さない状態になります。この状態のバッファは大きさ 0 のバッファとして扱われます。
解放したバッファでも IO::Buffer#resize を呼べば、あらためてメモリ領域を確保できます。
buf = IO::Buffer.new(4) buf.set_string("Ruby") buf.free p buf.null? # => true p buf.size # => 0 # resize すれば再び使える buf.resize(4) p buf.size # => 4[SEE_ALSO] IO::Buffer#transfer, IO::Buffer#null?