1 
2 /* Copyright (C) 1999-2021 by The D Language Foundation, All Rights Reserved
3  * written by Walter Bright
4  * http://www.digitalmars.com
5  * Distributed under the Boost Software License, Version 1.0.
6  * http://www.boost.org/LICENSE_1_0.txt
7  * https://github.com/dlang/dmd/blob/master/src/dmd/root/rmem.h
8  */
9 
10 #pragma once
11 
12 #include "dcompat.h"    // for d_size_t
13 
14 struct Mem
15 {
MemMem16     Mem() { }
17 
18     static char *xstrdup(const char *s);
19     static void xfree(void *p);
20     static void *xmalloc(d_size_t size);
21     static void *xcalloc(d_size_t size, d_size_t n);
22     static void *xrealloc(void *p, d_size_t size);
23     static void error();
24 
25     static bool _isGCEnabled;
26 
27     static bool isGCEnabled();
28     static void disableGC();
29     static void addRange(const void *p, d_size_t size);
30     static void removeRange(const void *p);
31 };
32 
33 extern Mem mem;
34