OLD | NEW |
1 // Copyright (c) 2005, 2007, Google Inc. | 1 // Copyright (c) 2005, 2007, Google Inc. |
2 // All rights reserved. | 2 // All rights reserved. |
3 // | 3 // |
4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // met: |
7 // | 7 // |
8 // * Redistributions of source code must retain the above copyright | 8 // * Redistributions of source code must retain the above copyright |
9 // notice, this list of conditions and the following disclaimer. | 9 // notice, this list of conditions and the following disclaimer. |
10 // * Redistributions in binary form must reproduce the above | 10 // * Redistributions in binary form must reproduce the above |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 // Pages which are released in this way may be destroyed (zeroed) by | 57 // Pages which are released in this way may be destroyed (zeroed) by |
58 // the OS. The benefit of this function is that it frees memory for | 58 // the OS. The benefit of this function is that it frees memory for |
59 // use by the system, the cost is that the pages are faulted back into | 59 // use by the system, the cost is that the pages are faulted back into |
60 // the address space next time they are touched, which can impact | 60 // the address space next time they are touched, which can impact |
61 // performance. (Only pages fully covered by the memory region will | 61 // performance. (Only pages fully covered by the memory region will |
62 // be released, partial pages will not.) | 62 // be released, partial pages will not.) |
63 extern void TCMalloc_SystemRelease(void* start, size_t length); | 63 extern void TCMalloc_SystemRelease(void* start, size_t length); |
64 | 64 |
65 extern void TCMalloc_SystemCommit(void* start, size_t length); | 65 extern void TCMalloc_SystemCommit(void* start, size_t length); |
66 | 66 |
67 #if !HAVE(MADV_FREE_REUSE) && !HAVE(MADV_DONTNEED) && !HAVE(MMAP) && !HAVE(VIRTU
ALALLOC) | 67 #if OS(DARWIN) |
| 68 #define HAVE_MADV_FREE 1 |
| 69 #define HAVE_MADV_FREE_REUSE 1 |
| 70 #endif |
| 71 |
| 72 #if !HAVE(MADV_FREE_REUSE) && !HAVE(MADV_DONTNEED) && !HAVE(MMAP) |
68 inline void TCMalloc_SystemRelease(void*, size_t) { } | 73 inline void TCMalloc_SystemRelease(void*, size_t) { } |
69 #endif | 74 #endif |
70 | 75 |
71 #if !HAVE(VIRTUALALLOC) && !HAVE(MADV_FREE_REUSE) | 76 #if !HAVE(MADV_FREE_REUSE) |
72 inline void TCMalloc_SystemCommit(void*, size_t) { } | 77 inline void TCMalloc_SystemCommit(void*, size_t) { } |
73 #endif | 78 #endif |
74 | 79 |
75 #endif /* TCMALLOC_SYSTEM_ALLOC_H__ */ | 80 #endif /* TCMALLOC_SYSTEM_ALLOC_H__ */ |
OLD | NEW |