+2014-07-03 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ intl: Sync up loadmsgcat.c with glibc
+ * loadmsgcat.c: Include assert.h.
+ (_nl_load_domain): Add semicolon to end of line.
+ (_nl_load_domain)[HAVE_MMAP]: Use MAP_FAILED and assert that
+ it is (void *) -1.
+ (_nl_load_domain)[_LIBC]: Call __libc_rwlock_init instead of
+ gl_rwlock_init.
+ (_nl_unload_domain): Cast convd->encoding to non-const.
+
2014-06-17 Daiki Ueno <ueno@gnu.org>
intl: Add back ChangeLog to gettext-runtime distribution
# include <config.h>
#endif
+#include <assert.h>
#include <ctype.h>
#include <errno.h>
#include <fcntl.h>
_nl_load_domain (struct loaded_l10nfile *domain_file,
struct binding *domainbinding)
{
- __libc_lock_define_initialized_recursive (static, lock)
+ __libc_lock_define_initialized_recursive (static, lock);
int fd = -1;
size_t size;
#ifdef _LIBC
data = (struct mo_file_header *) mmap (NULL, size, PROT_READ,
MAP_PRIVATE, fd, 0);
- if (__builtin_expect (data != (struct mo_file_header *) -1, 1))
+ if (__builtin_expect (data != MAP_FAILED, 1))
{
/* mmap() call was successful. */
close (fd);
fd = -1;
use_mmap = 1;
}
+
+ assert (MAP_FAILED == (void *) -1);
#endif
/* If the data is not yet available (i.e. mmap'ed) we try to load
/* No caches of converted translations so far. */
domain->conversions = NULL;
domain->nconversions = 0;
+#ifdef _LIBC
+ __libc_rwlock_init (domain->conversions_lock);
+#else
gl_rwlock_init (domain->conversions_lock);
+#endif
/* Get the header entry and look for a plural specification. */
#ifdef IN_LIBGLOCALE
{
struct converted_domain *convd = &domain->conversions[i];
- free (convd->encoding);
+ free ((char *) convd->encoding);
if (convd->conv_tab != NULL && convd->conv_tab != (char **) -1)
free (convd->conv_tab);
if (convd->conv != (__gconv_t) -1)