diff options
Diffstat (limited to 'src/gmalloc.c')
| -rw-r--r-- | src/gmalloc.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/gmalloc.c b/src/gmalloc.c index 99fa36d073a..eae83a74eb6 100644 --- a/src/gmalloc.c +++ b/src/gmalloc.c | |||
| @@ -352,6 +352,10 @@ Cambridge, MA 02139, USA. | |||
| 352 | #include <errno.h> | 352 | #include <errno.h> |
| 353 | 353 | ||
| 354 | /* How to really get more memory. */ | 354 | /* How to really get more memory. */ |
| 355 | #if defined(CYGWIN) | ||
| 356 | extern __ptr_t bss_sbrk PP ((ptrdiff_t __size)); | ||
| 357 | extern int bss_sbrk_did_unexec; | ||
| 358 | #endif | ||
| 355 | __ptr_t (*__morecore) PP ((ptrdiff_t __size)) = __default_morecore; | 359 | __ptr_t (*__morecore) PP ((ptrdiff_t __size)) = __default_morecore; |
| 356 | 360 | ||
| 357 | /* Debugging hook for `malloc'. */ | 361 | /* Debugging hook for `malloc'. */ |
| @@ -1572,7 +1576,14 @@ __ptr_t | |||
| 1572 | __default_morecore (increment) | 1576 | __default_morecore (increment) |
| 1573 | __malloc_ptrdiff_t increment; | 1577 | __malloc_ptrdiff_t increment; |
| 1574 | { | 1578 | { |
| 1575 | __ptr_t result = (__ptr_t) __sbrk (increment); | 1579 | __ptr_t result; |
| 1580 | #if defined(CYGWIN) | ||
| 1581 | if (!bss_sbrk_did_unexec) | ||
| 1582 | { | ||
| 1583 | return bss_sbrk (increment); | ||
| 1584 | } | ||
| 1585 | #endif | ||
| 1586 | result = (__ptr_t) __sbrk (increment); | ||
| 1576 | if (result == (__ptr_t) -1) | 1587 | if (result == (__ptr_t) -1) |
| 1577 | return NULL; | 1588 | return NULL; |
| 1578 | return result; | 1589 | return result; |