implemented Setup.hs to build boehm cpp libs and install them;
[hs-boehmgc.git] / gc-7.2 / stubborn.c
1 /*
2  * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers
3  * Copyright (c) 1991-1994 by Xerox Corporation.  All rights reserved.
4  *
5  * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
6  * OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
7  *
8  * Permission is hereby granted to use or copy this program
9  * for any purpose,  provided the above notices are retained on all copies.
10  * Permission to modify the code and to distribute modified code is granted,
11  * provided the above notices are retained, and a notice that the code was
12  * modified is included with the above copyright notice.
13  */
14
15 #include "private/gc_priv.h"
16
17 #if defined(MANUAL_VDB)
18
19   /* Stubborn object (hard to change, nearly immutable) allocation.     */
20   /* This interface is deprecated.  We mostly emulate it using          */
21   /* MANUAL_VDB.  But that imposes the additional constraint that       */
22   /* written, but not yet GC_dirty()ed objects must be referenced       */
23   /* by a stack.                                                        */
24
25   void GC_dirty(ptr_t p);
26
27   GC_API void * GC_CALL GC_malloc_stubborn(size_t lb)
28   {
29     return(GC_malloc(lb));
30   }
31
32   GC_API void GC_CALL GC_end_stubborn_change(void *p)
33   {
34     GC_dirty(p);
35   }
36
37   /*ARGSUSED*/
38   GC_API void GC_CALL GC_change_stubborn(void *p)
39   {
40   }
41
42 #else /* !MANUAL_VDB */
43
44   GC_API void * GC_CALL GC_malloc_stubborn(size_t lb)
45   {
46     return(GC_malloc(lb));
47   }
48
49   /*ARGSUSED*/
50   GC_API void GC_CALL GC_end_stubborn_change(void *p)
51   {
52   }
53
54   /*ARGSUSED*/
55   GC_API void GC_CALL GC_change_stubborn(void *p)
56   {
57   }
58
59 #endif /* !MANUAL_VDB */