[BACK]Return to memory.c CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gmp

Annotation of OpenXM_contrib/gmp/memory.c, Revision 1.1.1.1

1.1       maekawa     1: /* Memory allocation routines.
                      2:
                      3: Copyright (C) 1991, 1993, 1994 Free Software Foundation, Inc.
                      4:
                      5: This file is part of the GNU MP Library.
                      6:
                      7: The GNU MP Library is free software; you can redistribute it and/or modify
                      8: it under the terms of the GNU Library General Public License as published by
                      9: the Free Software Foundation; either version 2 of the License, or (at your
                     10: option) any later version.
                     11:
                     12: The GNU MP Library is distributed in the hope that it will be useful, but
                     13: WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
                     14: or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
                     15: License for more details.
                     16:
                     17: You should have received a copy of the GNU Library General Public License
                     18: along with the GNU MP Library; see the file COPYING.LIB.  If not, write to
                     19: the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
                     20: MA 02111-1307, USA. */
                     21:
                     22: #include <stdio.h>
                     23:
                     24: #include "gmp.h"
                     25: #include "gmp-impl.h"
                     26:
                     27: #ifdef __NeXT__
                     28: #define static
                     29: #endif
                     30:
                     31: #if __STDC__
                     32: void * (*_mp_allocate_func) (size_t) = _mp_default_allocate;
                     33: void * (*_mp_reallocate_func) (void *, size_t, size_t)
                     34:      = _mp_default_reallocate;
                     35: void   (*_mp_free_func) (void *, size_t) = _mp_default_free;
                     36: #else
                     37: void * (*_mp_allocate_func) () = _mp_default_allocate;
                     38: void * (*_mp_reallocate_func) () = _mp_default_reallocate;
                     39: void   (*_mp_free_func) () = _mp_default_free;
                     40: #endif
                     41:
                     42: /* Default allocation functions.  In case of failure to allocate/reallocate
                     43:    an error message is written to stderr and the program aborts.  */
                     44:
                     45: void *
                     46: #if __STDC__
                     47: _mp_default_allocate (size_t size)
                     48: #else
                     49: _mp_default_allocate (size)
                     50:      size_t size;
                     51: #endif
                     52: {
                     53:   void *ret;
                     54:
                     55:   ret = malloc (size);
                     56:   if (ret == 0)
                     57:     {
                     58:       perror ("cannot allocate in gmp");
                     59:       abort ();
                     60:     }
                     61:
                     62:   return ret;
                     63: }
                     64:
                     65: void *
                     66: #if __STDC__
                     67: _mp_default_reallocate (void *oldptr, size_t old_size, size_t new_size)
                     68: #else
                     69: _mp_default_reallocate (oldptr, old_size, new_size)
                     70:      void *oldptr;
                     71:      size_t old_size;
                     72:      size_t new_size;
                     73: #endif
                     74: {
                     75:   void *ret;
                     76:
                     77:   ret = realloc (oldptr, new_size);
                     78:   if (ret == 0)
                     79:     {
                     80:       perror ("cannot allocate in gmp");
                     81:       abort ();
                     82:     }
                     83:
                     84:   return ret;
                     85: }
                     86:
                     87: void
                     88: #if __STDC__
                     89: _mp_default_free (void *blk_ptr, size_t blk_size)
                     90: #else
                     91: _mp_default_free (blk_ptr, blk_size)
                     92:      void *blk_ptr;
                     93:      size_t blk_size;
                     94: #endif
                     95: {
                     96:   free (blk_ptr);
                     97: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>