Przeglądaj źródła

use libc-internal malloc for newlocale/freelocale

this is necessary for MT-fork correctness now that the code runs under
locale lock. it would not be hard to avoid, but __get_locale is
already using libc-internal malloc anyway. this can be reconsidered
during locale overhaul later if needed.
Rich Felker 4 lat temu
rodzic
commit
1e4204d522
2 zmienionych plików z 10 dodań i 0 usunięć
  1. 5 0
      src/locale/freelocale.c
  2. 5 0
      src/locale/newlocale.c

+ 5 - 0
src/locale/freelocale.c

@@ -1,6 +1,11 @@
 #include <stdlib.h>
 #include "locale_impl.h"
 
+#define malloc undef
+#define calloc undef
+#define realloc undef
+#define free __libc_free
+
 void freelocale(locale_t l)
 {
 	if (__loc_is_allocated(l)) free(l);

+ 5 - 0
src/locale/newlocale.c

@@ -4,6 +4,11 @@
 #include "locale_impl.h"
 #include "lock.h"
 
+#define malloc __libc_malloc
+#define calloc undef
+#define realloc undef
+#define free undef
+
 static int default_locale_init_done;
 static struct __locale_struct default_locale, default_ctype_locale;