diff options
author | Hong Liu <hong.liu@intel.com> | 2008-02-05 09:06:14 +0800 |
---|---|---|
committer | Jesse Barnes <jbarnes@hobbes.virtuousgeek.org> | 2008-02-05 11:06:45 -0800 |
commit | a70b59bd44d14e77c9e522dbe225b62a8bcf3050 (patch) | |
tree | fd996a35fce36717b9e04bd631cf984a41254782 | |
parent | fa841fd05bdebb991f4e4db201e6a260557e2dad (diff) | |
download | xorg-driver-xf86-video-intel-a70b59bd44d14e77c9e522dbe225b62a8bcf3050.tar.gz |
Allow non-strict free order for bo_list
-rw-r--r-- | src/i830_memory.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/i830_memory.c b/src/i830_memory.c index eed2eca2..96c8bc01 100644 --- a/src/i830_memory.c +++ b/src/i830_memory.c @@ -274,12 +274,16 @@ i830_free_memory(ScrnInfoPtr pScrn, i830_memory *mem) I830Ptr pI830 = I830PTR(pScrn); drmBOUnreference(pI830->drmSubFD, &mem->bo); - if (pI830->bo_list == mem) + if (pI830->bo_list == mem) { pI830->bo_list = mem->next; - if (mem->next) - mem->next->prev = NULL; - if (mem->prev) - mem->prev->next = NULL; + if (mem->next) + mem->next->prev = NULL; + } else { + if (mem->prev) + mem->prev->next = mem->next; + if (mem->next) + mem->next->prev = mem->prev; + } xfree(mem->name); xfree(mem); return; |