Author: bonefish Date: 2010-04-13 23:18:52 +0200 (Tue, 13 Apr 2010) New Revision: 36237 Changeset: http://dev.haiku-os.org/changeset/36237/haiku Ticket: http://dev.haiku-os.org/ticket/5710 Modified: haiku/trunk/src/system/kernel/vm/vm.cpp Log: wait_if_address_range_is_wired() was leaking a cache reference. Fixes #5710. Modified: haiku/trunk/src/system/kernel/vm/vm.cpp =================================================================== --- haiku/trunk/src/system/kernel/vm/vm.cpp 2010-04-13 21:16:23 UTC (rev 36236) +++ haiku/trunk/src/system/kernel/vm/vm.cpp 2010-04-13 21:18:52 UTC (rev 36237) @@ -955,12 +955,10 @@ if (base >= area->Base() + area->Size() - 1) continue; - VMCache* cache = vm_area_get_locked_cache(area); + AreaCacheLocker cacheLocker(vm_area_get_locked_cache(area)); - if (wait_if_area_range_is_wired(area, base, size, locker, cache)) + if (wait_if_area_range_is_wired(area, base, size, locker, &cacheLocker)) return true; - - cache->Unlock(); } return false;