fix return value bug causing crash with blocks in retainBlock