Remove repeated virtual calls

This fixes the cases where the same virtual method is being called through the same pointer to make it a bit faster and a lot more debuggable.