Fixed bug (weak ptr had a dangling pointer to block)

Still need to clean up block_ptr.h code (with inheritance).