Exemplo n.º 1
0
void
internal_function __libc_freeres_fn_section
_nl_unload_domain (struct loaded_domain *domain)
{
  size_t i;

  if (domain->plural != &__gettext_germanic_plural)
    __gettext_free_exp ((struct expression *) domain->plural);

  for (i = 0; i < domain->nconversions; i++)
    {
      struct converted_domain *convd = &domain->conversions[i];

      free (convd->encoding);
      if (convd->conv_tab != NULL && convd->conv_tab != (char **) -1)
	free (convd->conv_tab);
      if (convd->conv != (__gconv_t) -1)
	__gconv_close (convd->conv);
    }
  if (domain->conversions != NULL)
    free (domain->conversions);
  __libc_rwlock_fini (domain->conversions_lock);

  if (domain->malloced)
    free (domain->malloced);

# ifdef _POSIX_MAPPED_FILES
  if (domain->use_mmap)
    munmap ((caddr_t) domain->data, domain->mmap_size);
  else
# endif	/* _POSIX_MAPPED_FILES */
    free ((void *) domain->data);

  free (domain);
}
Exemplo n.º 2
0
void
internal_function
_nl_unload_domain (struct loaded_domain *domain)
{
    if (domain->plural != &__gettext_germanic_plural)
        __gettext_free_exp (domain->plural);

    _nl_free_domain_conv (domain);

    if (domain->malloced)
        free (domain->malloced);

# ifdef _POSIX_MAPPED_FILES
    if (domain->use_mmap)
        munmap ((caddr_t) domain->data, domain->mmap_size);
    else
# endif	/* _POSIX_MAPPED_FILES */
        free ((void *) domain->data);

    free (domain);
}