* Don't try to free the pages area when all you had was a single page (in the
union). * This fixes a crash on restart that has been revealed by Oco's change to the reboot process. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30085 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2008, Axel Dörfler, [email protected]. All rights reserved.
|
* Copyright 2008-2009, Axel Dörfler, [email protected].
|
||||||
* Copyright 2004-2006, Rudolf Cornelissen. All rights reserved.
|
* Copyright 2004-2006, Rudolf Cornelissen. All rights reserved.
|
||||||
*
|
*
|
||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
@@ -690,14 +690,16 @@ Aperture::_Free(aperture_memory *memory)
|
|||||||
for (uint32 i = 0; i < count; i++, page++) {
|
for (uint32 i = 0; i < count; i++, page++) {
|
||||||
vm_page_set_state(page, PAGE_STATE_FREE);
|
vm_page_set_state(page, PAGE_STATE_FREE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
memory->page = NULL;
|
||||||
} else {
|
} else {
|
||||||
for (uint32 i = 0; i < count; i++) {
|
for (uint32 i = 0; i < count; i++) {
|
||||||
vm_page_set_state(memory->pages[i], PAGE_STATE_FREE);
|
vm_page_set_state(memory->pages[i], PAGE_STATE_FREE);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
free(memory->pages);
|
free(memory->pages);
|
||||||
memory->pages = NULL;
|
memory->pages = NULL;
|
||||||
|
}
|
||||||
#else
|
#else
|
||||||
delete_area(memory->area);
|
delete_area(memory->area);
|
||||||
memory->area = -1;
|
memory->area = -1;
|
||||||
|
|||||||
Reference in New Issue
Block a user