Make sref::init use tryinc

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