OSDN Git Service

make regex_old.c, ruserpass.c use __uc_malloc,
authorDenis Vlasenko <vda.linux@googlemail.com>
Mon, 30 Jul 2007 17:02:06 +0000 (17:02 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Mon, 30 Jul 2007 17:02:06 +0000 (17:02 -0000)
replace "buf = malloc(BUFSIZ); if (!buf) abort();" by __uc_malloc
elsewhere.

With last 7 patches together uclibc has 3k of static data total
with fairly big .config and with 2k being used for 2 x BUFSIZ stdio buffer:
   text    data     bss     dec     hex filename
    114     132    2048    2294     8f6 _stdio.o (ex lib/libc.a)
total data 593
total bss  3062

libc/inet/getnetent.c
libc/inet/getproto.c
libc/inet/getservice.c
libc/inet/rpc/ruserpass.c
libc/misc/mntent/mntent.c
libc/misc/regex/regex_old.c
libc/misc/ttyent/getttyent.c

index 58e6790..99d87a3 100644 (file)
@@ -111,9 +111,7 @@ struct netent *getnetent(void)
 again:
 
     if (!line) {
-       line = malloc(BUFSIZ + 1);
-       if (!line)
-           abort();
+       line = __uc_malloc(BUFSIZ + 1);
     }
 
     p = fgets(line, BUFSIZ, netf);
index c1292ed..6367ccf 100644 (file)
@@ -59,6 +59,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <malloc.h>
 #include <errno.h>
 
 libc_hidden_proto(fopen)
@@ -86,9 +87,7 @@ static int proto_stayopen;
 static void __initbuf(void)
 {
     if (!static_aliases) {
-       static_aliases = malloc(SBUFSIZE);
-       if (!static_aliases)
-           abort();
+       static_aliases = __uc_malloc(SBUFSIZE);
     }
 }
 
index 5a94c9c..9ea810b 100644 (file)
@@ -59,6 +59,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
+#include <malloc.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
 #include <errno.h>
@@ -89,9 +90,7 @@ static int serv_stayopen;
 static void __initbuf(void)
 {
     if (!servbuf) {
-       servbuf = malloc(SBUFSIZE);
-       if (!servbuf)
-           abort();
+       servbuf = __uc_malloc(SBUFSIZE);
     }
 }
 
index 0adcbf1..b18bbf5 100644 (file)
@@ -40,6 +40,7 @@
 #include <stdio_ext.h>
 #include <stdlib.h>
 #include <string.h>
+#include <malloc.h>
 #include <strings.h>
 #include <unistd.h>
 
@@ -79,7 +80,7 @@ static        FILE *cfile;
 #define        ID      10
 #define        MACHINE 11
 
-static char tokval[100];
+static char *tokval; /* [100] */
 
 static const char tokstr[] =
 {
@@ -152,6 +153,9 @@ int ruserpass(const char *host, const char **aname, const char **apass)
        if (mydomain==NULL) {
            mydomain=myname + strlen(myname);
        }
+
+       if (!tokval)
+               tokval = __uc_malloc(100);
 next:
        while ((t = token())) switch(t) {
 
index a5db799..a9024be 100644 (file)
@@ -7,6 +7,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <malloc.h>
 #include <mntent.h>
 #include <bits/uClibc_mutex.h>
 
@@ -84,9 +85,7 @@ struct mntent *getmntent(FILE * filep)
     __UCLIBC_MUTEX_LOCK(mylock);
     
     if (!buff) {
-            buff = malloc(BUFSIZ);
-               if (!buff)
-                   abort();
+            buff = __uc_malloc(BUFSIZ);
     }
     
     tmp = getmntent_r(filep, &mnt, buff, BUFSIZ);
index cf5843e..997ee6f 100644 (file)
@@ -35,6 +35,7 @@
 #include <stdlib.h>
 #include <stdint.h>
 #include <string.h>
+#include <malloc.h>
 #include <stdio.h>
 
 libc_hidden_proto(memset)
@@ -306,7 +307,7 @@ extern char *re_syntax_table;
 
 #  else /* not SYNTAX_TABLE */
 
-static char re_syntax_table[CHAR_SET_SIZE];
+static char *re_syntax_table; /* [CHAR_SET_SIZE] */
 
 static void init_syntax_once PARAMS ((void));
 
@@ -314,11 +315,13 @@ static void
 init_syntax_once ()
 {
    register int c;
-   static int done = 0;
+   static char done;
 
    if (done)
      return;
-   bzero (re_syntax_table, sizeof re_syntax_table);
+
+   re_syntax_table = __uc_malloc(CHAR_SET_SIZE);
+   bzero (re_syntax_table, CHAR_SET_SIZE);
 
    for (c = 0; c < CHAR_SET_SIZE; ++c)
      if (ISALNUM (c))
index c9c68f1..e68eb8a 100644 (file)
@@ -34,6 +34,7 @@
 #include <ctype.h>
 #include <string.h>
 #include <stdlib.h>
+#include <malloc.h>
 #ifdef __UCLIBC_HAS_THREADS__
 #include <pthread.h>
 #endif
@@ -132,9 +133,7 @@ struct ttyent * getttyent(void)
        return (NULL);
 
     if (!line) {
-            line = malloc(BUFSIZ);
-               if (!line)
-                   abort();
+            line = __uc_malloc(BUFSIZ);
     }
 
        __STDIO_ALWAYS_THREADLOCK(tf);