=== modified file 'storage/innobase/lock/lock0lock.cc' --- storage/innobase/lock/lock0lock.cc 2013-03-26 13:01:45 +0000 +++ storage/innobase/lock/lock0lock.cc 2013-06-25 21:22:04 +0000 @@ -1708,18 +1708,20 @@ ut_ad(gap == 0 || gap == LOCK_GAP); ut_ad(wait == 0 || wait == LOCK_WAIT); - for (lock = lock_rec_get_first(block, heap_no); - lock != NULL; - lock = lock_rec_get_next_const(heap_no, lock)) { - - if (lock->trx != trx - && (gap - || !(lock_rec_get_gap(lock) - || heap_no == PAGE_HEAP_NO_SUPREMUM)) - && (wait || !lock_get_wait(lock)) - && lock_mode_stronger_or_eq(lock_get_mode(lock), mode)) { - - return(lock); + if (gap || !(heap_no == PAGE_HEAP_NO_SUPREMUM)) { + for (lock = lock_rec_get_first(block, heap_no); + lock != NULL; + lock = lock_rec_get_next_const(heap_no, lock)) { + + if (lock->trx != trx + && (gap + || !(lock_rec_get_gap(lock) + || heap_no == PAGE_HEAP_NO_SUPREMUM)) + && (wait || !lock_get_wait(lock)) + && lock_mode_stronger_or_eq(lock_get_mode(lock), mode)) { + + return(lock); + } } }