https://bugs.winehq.org/show_bug.cgi?id=54718
Piotr Caban piotr.caban@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |piotr.caban@gmail.com
--- Comment #1 from Piotr Caban piotr.caban@gmail.com --- I will need to look deeper into it but it looks like there's some kind of initial C locale object. It's treated differently comparing to other locale objects, e.g. it's not freed even if its refcount reaches 0. Every time _create_locale is called, this object is copied to newly created locale (and refcounts are increased). Later some categories are overwritten without decreasing refcounts. It's a refcount leak in native implementation.
Here's a short explanation why broken was needed in refcount test: test____mb_cur_max_l_func calls create locale. If requested locale is not available - create_locale doesn't increase the initial C locale object refcounts and skip message is displayed. Because of that l2->locinfo->lc_time_curr->refcount equals 2.
In order to fix it, we will need to move test__get_current_locale tests earlier in the file. Another option is to avoid testing refcounts of this special object.