Print this page
Thread safety fixes.
*** 46,56 ****
"no" /* nostr */
};
struct locdata __posix_messages_locdata = {
.l_lname = "C",
- .l_refcnt = (uint32_t)-1,
.l_data = { &lc_messages_posix }
};
struct locdata *
__lc_messages_load(const char *name)
--- 46,55 ----
*** 66,76 ****
ret = __part_load_locale(name, (char **)&ldata->l_data[1],
"LC_MESSAGES", LCMESSAGES_SIZE_FULL, LCMESSAGES_SIZE_MIN,
(const char **)lmsgs);
if (ret != _LDP_LOADED) {
! __locdata_release(ldata);
errno = EINVAL;
return (NULL);
}
if (lmsgs->yesstr == NULL)
--- 65,75 ----
ret = __part_load_locale(name, (char **)&ldata->l_data[1],
"LC_MESSAGES", LCMESSAGES_SIZE_FULL, LCMESSAGES_SIZE_MIN,
(const char **)lmsgs);
if (ret != _LDP_LOADED) {
! __locdata_free(ldata);
errno = EINVAL;
return (NULL);
}
if (lmsgs->yesstr == NULL)