summaryrefslogtreecommitdiff
path: root/as/readsrc.c
diff options
context:
space:
mode:
authorRobert de Bath <rdebath@poboxes.com>2002-01-12 20:42:42 +0100
committerLubomir Rintel <lkundrak@v3.sk>2013-10-23 23:48:46 +0200
commitd91fa39567f5659e3931cf61517d62fddcd87570 (patch)
tree20583acd4f345a4f5c9a7772870ef972cb8a3b14 /as/readsrc.c
parentbff547eabb6678ec8e71ffbcfbf9a4f05c94d949 (diff)
downloaddev86-d91fa39567f5659e3931cf61517d62fddcd87570.tar.gz
Import Dev86src-0.16.1.tar.gzv0.16.1
Diffstat (limited to 'as/readsrc.c')
-rw-r--r--as/readsrc.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/as/readsrc.c b/as/readsrc.c
index 819efb8..df69756 100644
--- a/as/readsrc.c
+++ b/as/readsrc.c
@@ -138,9 +138,12 @@ char *name;
for(;;)
{
if( filelength >= memsize )
- mem_start = realloc(mem_start, (memsize+=16000)+4);
- if(mem_start == 0)
- as_abort("Cannot allocate memory for BIG buffer");
+ {
+ if (memsize > 16000)
+ mem_start = asrealloc(mem_start, (memsize+=16384)+4);
+ else
+ mem_start = asrealloc(mem_start, (memsize+=memsize+32)+4);
+ }
cc = read(fd, mem_start+filelength,
(size_t)(memsize-filelength));
if( cc <= 0 ) break;