gc: stabilize walking inter-ptrs on the stack

if an invalid object on the stack is detected, (such as ptr->data)
skip it, (size = 0).
fixes gc_forward test