Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5af3d010 authored by Mathias Agopian's avatar Mathias Agopian Committed by Android (Google) Code Review
Browse files

Merge "Fix a wp<> bug where the owner ID would be wrong"

parents 66d16910 49862c36
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -425,8 +425,11 @@ void wp<T>::set_object_and_refs(T* other, weakref_type* refs)
template<typename T>
sp<T> wp<T>::promote() const
{
    T* p = (m_ptr && m_refs->attemptIncStrong(this)) ? m_ptr : 0;
    return sp<T>(p, true);
    sp<T> result;
    if (m_ptr && m_refs->attemptIncStrong(&result)) {
        result.set_pointer(m_ptr);
    }
    return result;
}

template<typename T>
+5 −9
Original line number Diff line number Diff line
@@ -104,10 +104,7 @@ public:
private:    
    template<typename Y> friend class sp;
    template<typename Y> friend class wp;

    // Optimization for wp::promote().
    sp(T* p, bool);

    void set_pointer(T* ptr);
    T* m_ptr;
};

@@ -206,9 +203,8 @@ void sp<T>::clear()
}

template<typename T>
sp<T>::sp(T* p, bool)
: m_ptr(p)
  {
void sp<T>::set_pointer(T* ptr) {
    m_ptr = ptr;
}

template <typename T>