diff options
author | Per Bothner <bothner@gcc.gnu.org> | 1995-04-06 23:19:22 -0700 |
---|---|---|
committer | Per Bothner <bothner@gcc.gnu.org> | 1995-04-06 23:19:22 -0700 |
commit | 56c667474e64c95d8a69592d54b40db9f6ba29d1 (patch) | |
tree | 622e4cfaa55688a107b4c8e1108af0298ec9754b /gcc/cppalloc.c | |
parent | 746a9efa80d9d3fba8bee9482da7b7e0e3d428e5 (diff) | |
download | gcc-56c667474e64c95d8a69592d54b40db9f6ba29d1.zip gcc-56c667474e64c95d8a69592d54b40db9f6ba29d1.tar.gz gcc-56c667474e64c95d8a69592d54b40db9f6ba29d1.tar.bz2 |
* cppalloc.c (xcalloc): Re-implement using calloc, rather than malloc+bzero.
From-SVN: r9319
Diffstat (limited to 'gcc/cppalloc.c')
-rw-r--r-- | gcc/cppalloc.c | 33 |
1 files changed, 7 insertions, 26 deletions
diff --git a/gcc/cppalloc.c b/gcc/cppalloc.c index aa37aac..2287dbc 100644 --- a/gcc/cppalloc.c +++ b/gcc/cppalloc.c @@ -45,10 +45,9 @@ xrealloc (old, size) unsigned size; { register char *ptr = (char *) realloc (old, size); - if (ptr != 0) return (ptr); - memory_full (); - /*NOTREACHED*/ - return 0; + if (ptr == 0) + memory_full (); + return ptr; } char * @@ -56,26 +55,8 @@ xcalloc (number, size) unsigned number, size; { register unsigned total = number * size; - register char *ptr = (char *) malloc (total); - if (ptr != 0) { - if (total > 100) - bzero (ptr, total); - else { - /* It's not too long, so loop, zeroing by longs. - It must be safe because malloc values are always well aligned. */ - register long *zp = (long *) ptr; - register long *zl = (long *) (ptr + total - 4); - register int i = total - 4; - while (zp < zl) - *zp++ = 0; - if (i < 0) - i = 0; - while (i < total) - ptr[i++] = 0; - } - return ptr; - } - memory_full (); - /*NOTREACHED*/ - return 0; + register char *ptr = (char *) calloc (number, size); + if (ptr == 0) + memory_full (); + return ptr; } |