From 2be0e25f4b6a4f91e39388cc365bbe53b56ab62a Mon Sep 17 00:00:00 2001 From: Avi Kivity Date: Wed, 17 Oct 2012 17:14:41 +0200 Subject: memory: abort if a memory region is destroyed during a transaction Destroying a memory region is illegal within a transaction, as until the transaction is committed, the memory core may hold references to the region. Add an assert to check for violations of this rule. Signed-off-by: Avi Kivity --- memory.c | 1 + 1 file changed, 1 insertion(+) (limited to 'memory.c') diff --git a/memory.c b/memory.c index d2f2fd66fb..94049a797d 100644 --- a/memory.c +++ b/memory.c @@ -1022,6 +1022,7 @@ void memory_region_init_reservation(MemoryRegion *mr, void memory_region_destroy(MemoryRegion *mr) { assert(QTAILQ_EMPTY(&mr->subregions)); + assert(memory_region_transaction_depth == 0); mr->destructor(mr); memory_region_clear_coalescing(mr); g_free((char *)mr->name); -- cgit v1.2.1