Make sref::init use tryinc

上级 ca568c2a
......@@ -11,13 +11,11 @@ public:
ptr_->dec();
}
void init(T* p) {
const T* save = ptr_;
bool init(T* p) {
if (ptr_ || !p->tryinc())
return false;
ptr_ = p;
if (ptr_)
ptr_->inc();
if (save)
save->dec();
return true;
}
bool operator==(const sref<T>& pr) const { return ptr_ == pr.ptr_; }
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论