Please don't sprinkle `return' statements deep inside large and complexfunctions. It makes the code hard to audit and to modify and it invitesresource leaks and locking errors. Instead, use `goto suitable_unwind_point;', thanks.