From: nobu@... Date: 2015-06-07T02:15:00+00:00 Subject: [ruby-core:69484] [Ruby trunk - Bug #11231] [Closed] Should rb_alloc_tmp_buffer() be public API? Issue #11231 has been updated by Nobuyoshi Nakada. Description updated Status changed from Open to Closed Benoit Daloze wrote: > `rb_alloc_tmp_buffer()` is declared in `include/ruby/intern.h`. `include/ruby/ruby.h`. > There was a try to specify it in > https://github.com/rubinius/rubinius/commit/bf0a6b988661d3917e9dcea62746b07b5f6d00ca > but this results in SEGV on MRI (I guess it is not intended usage of the API, but what would be correct usage?). > > It is used in the `ALLOCV()` macro, which is maybe the reason why this is part of the header? Yes, exactly. > Is there a way to hide such internal function? > Or is it on purpose declared publicly? It's similar to `alloca()`, the result should be used only in single function. ---------------------------------------- Bug #11231: Should rb_alloc_tmp_buffer() be public API? https://bugs.ruby-lang.org/issues/11231#change-52784 * Author: Benoit Daloze * Status: Closed * Priority: Normal * Assignee: * ruby -v: ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- `rb_alloc_tmp_buffer()` is declared in `include/ruby/intern.h`. However it seems this is a fairly internal API as it deals with a `VALUE` pointer and has undocumented liveliness/GC behavior. There was a try to specify it in https://github.com/rubinius/rubinius/commit/bf0a6b988661d3917e9dcea62746b07b5f6d00ca but this results in SEGV on MRI (I guess it is not intended usage of the API, but what would be correct usage?). It is used in the `ALLOCV()` macro, which is maybe the reason why this is part of the header? Is there a way to hide such internal function? Or is it on purpose declared publicly? -- https://bugs.ruby-lang.org/