about summary refs log tree commit diff
path: root/locale/xlocale.h
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>2002-08-31 20:08:18 +0000
committerRoland McGrath <roland@gnu.org>2002-08-31 20:08:18 +0000
commita0fc81e1710a9cb9b9ccfceaf2afcca2a310cb4d (patch)
treeaf29d38e9663142b5602064c03aef7a78ee74a2c /locale/xlocale.h
parent6f8f03151697ae59158443f271acc941bc0e8e29 (diff)
downloadglibc-a0fc81e1710a9cb9b9ccfceaf2afcca2a310cb4d.tar.gz
glibc-a0fc81e1710a9cb9b9ccfceaf2afcca2a310cb4d.tar.xz
glibc-a0fc81e1710a9cb9b9ccfceaf2afcca2a310cb4d.zip
* locale/newlocale.c (__newlocale): Don't use strdup for names.
	Instead, make the single allocation of the structure larger to hold
	the name strings.
	* locale/duplocale.c (__duplocale): Don't strdup names individually.
	Instead, calculate size for a single allocation and copy into it.
	* locale/freelocale.c (__freelocale): Don't free names individually.
Diffstat (limited to 'locale/xlocale.h')
-rw-r--r--locale/xlocale.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/locale/xlocale.h b/locale/xlocale.h
index 4fb557d3bf..2b17d6973f 100644
--- a/locale/xlocale.h
+++ b/locale/xlocale.h
@@ -29,12 +29,14 @@ typedef struct __locale_struct
 {
   /* Note: LC_ALL is not a valid index into this array.  */
   struct locale_data *__locales[13]; /* 13 = __LC_LAST. */
-  const char *__names[13];
 
   /* To increase the speed of this solution we add some special members.  */
   const unsigned short int *__ctype_b;
   const int *__ctype_tolower;
   const int *__ctype_toupper;
+
+  /* Note: LC_ALL is not a valid index into this array.  */
+  const char *__names[13];
 } *__locale_t;
 
 #endif /* xlocale.h */