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

Commit 09b0495b authored by Steven Moreland's avatar Steven Moreland
Browse files

libutils: better docs for sp<>::make

Bug: 184190315
Test: N/A
Change-Id: I56621058b9d85122b7dca3727e40c8c85595031f
parent 6463f60a
Loading
Loading
Loading
Loading
+15 −3
Original line number Original line Diff line number Diff line
@@ -32,9 +32,21 @@ class sp {
public:
public:
    inline sp() : m_ptr(nullptr) { }
    inline sp() : m_ptr(nullptr) { }


    // TODO: switch everyone to using this over new, and make RefBase operator
    // The old way of using sp<> was like this. This is bad because it relies
    // new private to that class so that we can avoid RefBase being used with
    // on implicit conversion to sp<>, which we would like to remove (if an
    // other memory management mechanisms.
    // object is being managed some other way, this is double-ownership). We
    // want to move away from this:
    //
    //     sp<Foo> foo = new Foo(...); // DO NOT DO THIS
    //
    // Instead, prefer to do this:
    //
    //     sp<Foo> foo = sp<Foo>::make(...); // DO THIS
    //
    // Sometimes, in order to use this, when a constructor is marked as private,
    // you may need to add this to your class:
    //
    //     friend class sp<Foo>;
    template <typename... Args>
    template <typename... Args>
    static inline sp<T> make(Args&&... args);
    static inline sp<T> make(Args&&... args);