aboutsummaryrefslogtreecommitdiffstats
path: root/src/ralloc.c
diff options
context:
space:
mode:
authorEli Zaretskii <[email protected]>2012-10-07 20:33:10 +0200
committerEli Zaretskii <[email protected]>2012-10-07 20:33:10 +0200
commit98daa89356f6523c2c6663110d0c715f018b1a8b (patch)
tree1a623875528879dddf2e64efee8e10c0ca22fae1 /src/ralloc.c
parent0aada74e88baf554a1bf95bce9373d9ac76429ad (diff)
Don't abort when ralloc.c:relinquish cannot return a heap to the system.
src/ralloc.c (relinquish): If a heap is ready to be relinquished, but it still has blocs in it, don't return it to the system, instead of aborting. (Bug#12402)
Diffstat (limited to 'src/ralloc.c')
-rw-r--r--src/ralloc.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/ralloc.c b/src/ralloc.c
index e4a8fe9c6d..1189741193 100644
--- a/src/ralloc.c
+++ b/src/ralloc.c
@@ -327,10 +327,11 @@ relinquish (void)
if ((char *)last_heap->end - (char *)last_heap->bloc_start <= excess)
{
- /* This heap should have no blocs in it. */
+ /* This heap should have no blocs in it. If it does, we
+ cannot return it to the system. */
if (last_heap->first_bloc != NIL_BLOC
|| last_heap->last_bloc != NIL_BLOC)
- emacs_abort ();
+ return;
/* Return the last heap, with its header, to the system. */
excess = (char *)last_heap->end - (char *)last_heap->start;