fix free _ptr bug