source: git/Singular/mminit.cc @ 6f1610

spielwiese
Last change on this file since 6f1610 was 6f1610, checked in by Olaf Bachmann <obachman@…>, 24 years ago
* ideals: fix in idModulo * k* fix initSSpecial * mmbt: don't track on new git-svn-id: file:///usr/local/Singular/svn/trunk@3835 2c84dea3-7e68-4137-9b89-c4e89433aadc
  • Property mode set to 100644
File size: 1.5 KB
Line 
1/****************************************
2*  Computer Algebra System SINGULAR     *
3****************************************/
4/* $Id: mminit.cc,v 1.18 1999-11-17 12:09:27 obachman Exp $ */
5/*
6* ABSTRACT: init of memory management
7*/
8
9#define _POSIX_SOURCE 1
10
11#include <stdlib.h>
12#include <string.h>
13#define __USE_MISC
14#include <unistd.h>
15#ifdef macintosh
16#include <types.h>
17#else
18#include <sys/types.h>
19#endif
20#include "mod2.h"
21#include "mmemory.h"
22#include "mmprivate.h"
23extern "C" { /* begin of "C" */
24#include <gmp.h>
25memHeap mm_specHeap = NULL;
26} /* end of "C" */
27
28void* operator new ( size_t size )
29{
30#ifdef MDEBUG
31  extern int mm_no_mtrack;
32  void* addr;
33  mm_no_mtrack = 1;
34  addr = mmDBAlloc( size, "new",0);
35  mm_no_mtrack = 0;
36  return addr;
37#else
38  return AllocL( size );
39#endif
40}
41
42void operator delete ( void* block )
43{
44#ifdef MDEBUG
45  mmDBFree( block, "delete",0);
46#else
47  FreeL( block );
48#endif
49}
50
51#ifdef MDEBUG
52void * mgAllocBlock( size_t t)
53{
54  return mmDBAllocBlock(t,"gmp",0);
55}
56void mgFreeBlock( void* a, size_t t)
57{
58  mmDBFreeBlock(a,t,"gmp",0);
59}
60void * mgReallocBlock( void* a, size_t t1, size_t t2)
61{
62  return mmDBReallocBlock(a,t1,t2,"gmp",0);
63}
64#endif
65
66#ifdef HAVE_SBRK
67#include <unistd.h>
68unsigned long mm_SbrkInit = (unsigned long)sbrk(0);
69#endif
70
71static int mmIsInitialized=mmInit();
72
73int mmInit( void )
74{
75  if(mmIsInitialized==0)
76  {
77#ifndef MDEBUG
78    mp_set_memory_functions(mmAllocBlock,mmReallocBlock,mmFreeBlock);
79#else
80    mp_set_memory_functions(mgAllocBlock,mgReallocBlock,mgFreeBlock);
81#endif
82  }
83  mmIsInitialized=1;
84  return 1;
85}
Note: See TracBrowser for help on using the repository browser.