Remove data from PointerParser

PointerParser was still holding a reference to data, but wasn't actually
using it for anything.
fix deadlock

during startup, a deadlock sometimes occurs due to locking order. The
locking order has been revised to remove the possibility of the
deadlock.