]> Cypherpunks repositories - gostls13.git/commitdiff
reallocate library, libraryobj: 50 isn't nearly enough
authorRob Pike <r@golang.org>
Sat, 10 Oct 2009 19:29:06 +0000 (12:29 -0700)
committerRob Pike <r@golang.org>
Sat, 10 Oct 2009 19:29:06 +0000 (12:29 -0700)
R=rsc
DELTA=7  (2 added, 0 deleted, 5 changed)
OCL=35569
CL=35569

src/cmd/ld/lib.c
src/cmd/ld/lib.h

index 208a55b44149c757ca2fa55c3dfa8553725d1b5a..99a76558d37f9d714821d18a08b6d3dde8ac014f 100644 (file)
@@ -153,9 +153,10 @@ addlib(char *src, char *obj)
        for(i=0; i<libraryp; i++)
                if(strcmp(name, library[i]) == 0)
                        return;
-       if(libraryp == nelem(library)){
-               diag("too many autolibs; skipping %s", name);
-               return;
+       if(libraryp == nlibrary){
+               nlibrary = 50 + 2*libraryp;
+               library = realloc(library, sizeof library[0] * nlibrary);
+               libraryobj = realloc(libraryobj, sizeof libraryobj[0] * nlibrary);
        }
 
        p = mal(strlen(name) + 1);
index 1d455979ffc0de5d107bfaa8e7db2e95e907f7d2..0ae4106b8a9fd3690f9022b7e6117b6dfc82b412 100644 (file)
@@ -36,9 +36,10 @@ extern       int     cout;
 EXTERN char*   INITENTRY;
 EXTERN char    thechar;
 EXTERN char*   thestring;
-EXTERN char*   library[50];
-EXTERN char*   libraryobj[50];
+EXTERN char**  library;
+EXTERN char**  libraryobj;
 EXTERN int     libraryp;
+EXTERN int     nlibrary;
 EXTERN Sym*    hash[NHASH];
 EXTERN Sym*    histfrog[MAXHIST];
 EXTERN uchar   fnuxi8[8];