This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
PATCH: [perl #133959] Free BSD broken tests
authorKarl Williamson <khw@cpan.org>
Wed, 27 Mar 2019 16:28:21 +0000 (10:28 -0600)
committerKarl Williamson <khw@cpan.org>
Wed, 27 Mar 2019 17:13:28 +0000 (11:13 -0600)
commite72200e71a601e2c7882a03502d6a68aaa59985c
tree19c888001d04e210f0c14de3e3f390df6fe3be4a
parentfd8def15a58c97aa89cce8569befded97fd8c3b7
PATCH: [perl #133959] Free BSD broken tests

Commit 70bd6bc82ba64c1d197d3ec823f43c4a454b2920 fixed a leak (likely due
to a bug in glibc) by not duplicating the C locale object.  However,
that meant that there's only one copy running around.  And freeing that
will cause havoc, as its supposed to be there until destruction.  What
appears to be happening is that the current locale object is freed upon
thread destruction, and that could be this global one.  But I don't
understand why it's only happening on Free BSD and only on this version.
But this commit fixes the problem there, and makes sense.  Simply don't
free this global object upon thread destruction.

This commit also changes it so it doesn't get destroyed at destruction
time, leaving it to the final PERL_SYS_TERM to free.  I'm not sure, but
I think this fixes any issues with embedded perls.
locale.c
perl.c