Ruby: changing deprecated rb_cData to rb_cObject.
Ruby 3.0 deprecated rb_cData with the intention to remove it in release 3.1. This commit changes references of rb_cData to rb_cObject. This was done so we can support distributions that package Ruby 3.0, such as Fedora 34. We also need to call rb_undef_alloc_func because we're no longer deriving from rb_cData. This prevents unnecessary allocations. See: https://docs.ruby-lang.org/en/3.0.0/doc/extension_rdoc.html "It is recommended that klass derives from a special class called Data (rb_cData) but not from Object or other ordinal classes. If it doesn't, you have to call rb_undef_alloc_func(klass)."
This commit is contained in:
@@ -50,6 +50,12 @@ points on a per-request basis during static file serving.
|
|||||||
</para>
|
</para>
|
||||||
</change>
|
</change>
|
||||||
|
|
||||||
|
<change type="feature">
|
||||||
|
<para>
|
||||||
|
compatibility with Ruby 3.0.
|
||||||
|
</para>
|
||||||
|
</change>
|
||||||
|
|
||||||
<change type="bugfix">
|
<change type="bugfix">
|
||||||
<para>
|
<para>
|
||||||
a segmentation fault might have occurred in the PHP module if
|
a segmentation fault might have occurred in the PHP module if
|
||||||
|
|||||||
@@ -25,7 +25,9 @@ nxt_ruby_stream_io_input_init(void)
|
|||||||
{
|
{
|
||||||
VALUE stream_io;
|
VALUE stream_io;
|
||||||
|
|
||||||
stream_io = rb_define_class("NGINX_Unit_Stream_IO_Read", rb_cData);
|
stream_io = rb_define_class("NGINX_Unit_Stream_IO_Read", rb_cObject);
|
||||||
|
|
||||||
|
rb_undef_alloc_func(stream_io);
|
||||||
|
|
||||||
rb_gc_register_address(&stream_io);
|
rb_gc_register_address(&stream_io);
|
||||||
|
|
||||||
@@ -46,7 +48,9 @@ nxt_ruby_stream_io_error_init(void)
|
|||||||
{
|
{
|
||||||
VALUE stream_io;
|
VALUE stream_io;
|
||||||
|
|
||||||
stream_io = rb_define_class("NGINX_Unit_Stream_IO_Error", rb_cData);
|
stream_io = rb_define_class("NGINX_Unit_Stream_IO_Error", rb_cObject);
|
||||||
|
|
||||||
|
rb_undef_alloc_func(stream_io);
|
||||||
|
|
||||||
rb_gc_register_address(&stream_io);
|
rb_gc_register_address(&stream_io);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user