Updated mark logic, in an attept to be less heavyweight, since profiling showed that creating an IntStack cost more than it saved