Project

General

Profile

Actions

Feature #12754

closed

Want to use prepared buffer with `Array#pack`

Added by usa (Usaku NAKAMURA) about 5 years ago. Updated almost 5 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
[ruby-dev:49798]

Description

Array#pack always returns new allocated String, but sometimes users want to use prepared buffer, especially the packed size is too large.
I often uses Fiddle to call OS APIs, and encounter this problem as every time.
I recommend to add keyword arguments for the purpose.

buf = '\0'*(32 * 1024 * 1024)
# ...
ary.pack(LONG_FORMAT, buffer: buf, offset: 4 * 1024) # returns `buf`

Updated by nobu (Nobuyoshi Nakada) about 5 years ago

Array#pack provides @ for offset.

Actions #2

Updated by nobu (Nobuyoshi Nakada) almost 5 years ago

  • Tracker changed from Bug to Feature

Updated by matz (Yukihiro Matsumoto) almost 5 years ago

Accepted.

Matz.

Actions #4

Updated by usa (Usaku NAKAMURA) almost 5 years ago

  • Status changed from Open to Closed

Applied in changeset r56957.


Supports buffer and offset in Array#pack

  • pack.c (pack_pack): Supports buffer and offset in Array#pack. [Feature #12754] [ruby-dev:49798]
Actions

Also available in: Atom PDF