[Moscow.pm] Баг в JSON::XS?

Вадим Власов scripter.vrn на gmail.com
Ср Ноя 26 09:01:33 PST 2014


Исследуя новый сериализатор в JSON::XS наткнулся:

$ echo 'use strict;
use warnings;
use feature "say";

use JSON::XS;
my $j=JSON::XS->new->allow_tags;

say "JSON::XS: $JSON::XS::VERSION";
say "Types::Serialiser: $Types::Serialiser::VERSION";

my $t = $j->encode( Foo->new );
say $t;

my @t = $j->encode( Foo->new );

package Foo;
sub new { bless {}, $_[0]; }
sub FREEZE { ( 123, 456 ); }' | perl
*JSON::XS: 3.01*
*Types::Serialiser: 1.0*
*("Foo")[123,456]*
*panic: attempt to copy freed scalar c37a18 to c37a00 at - line 14.*

$ perl -MJSON::XS -wE 'say JSON::XS->new->allow_tags->encode( bless {}, Foo
); package Foo; sub FREEZE{ return 123 }'
*Use of uninitialized value in say at -e line 1.*
*("Foo")[123]*

$ perl -MJSON::XS -wE 'say scalar( JSON::XS->new->allow_tags->encode( bless
{}, Foo )); package Foo; sub FREEZE{ return 123 }'
*("Foo")[123]*

Проверили на разных машинах и на разных версиях perl-а - одно и то же.

-- 
  С уважением,
  Вадим Власов
  т.: +7 (916) 424-00-72
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20141126/17ce30f8/attachment.html>


Подробная информация о списке рассылки Moscow-pm