fix DirectUnsafe not being able to handle gc move