aboutsummaryrefslogtreecommitdiff
path: root/gcc/cppalloc.c
diff options
context:
space:
mode:
authorPer Bothner <bothner@gcc.gnu.org>1995-04-06 23:19:22 -0700
committerPer Bothner <bothner@gcc.gnu.org>1995-04-06 23:19:22 -0700
commit56c667474e64c95d8a69592d54b40db9f6ba29d1 (patch)
tree622e4cfaa55688a107b4c8e1108af0298ec9754b /gcc/cppalloc.c
parent746a9efa80d9d3fba8bee9482da7b7e0e3d428e5 (diff)
downloadgcc-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.c33
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;
}