Back to index

glibc  2.9
freelocale.c File Reference
#include <locale.h>
#include <stdlib.h>
#include <bits/libc-lock.h>
#include "localeinfo.h"

Go to the source code of this file.


 __libc_rwlock_define (extern, __libc_setlocale_lock attribute_hidden) void __freelocale(__locale_t dataset)

Function Documentation

__libc_rwlock_define ( extern  ,
__libc_setlocale_lock  attribute_hidden 

Definition at line 29 of file freelocale.c.

  int cnt;

  /* This static object is returned for newlocale (LC_ALL_MASK, "C").  */
  if (dataset == _nl_C_locobj_ptr)

  /* We modify global data (the usage counts).  */
  __libc_rwlock_wrlock (__libc_setlocale_lock);

  for (cnt = 0; cnt < __LC_LAST; ++cnt)
    if (cnt != LC_ALL && dataset->__locales[cnt]->usage_count != UNDELETABLE)
      /* We can remove the data.  */
      _nl_remove_locale (cnt, dataset->__locales[cnt]);

  /* It's done.  */
  __libc_rwlock_unlock (__libc_setlocale_lock);

  /* Free the locale_t handle itself.  */
  free (dataset);

Here is the call graph for this function: