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

Commit 63a8b19c authored by Jooyung Han's avatar Jooyung Han Committed by Automerger Merge Worker
Browse files

Merge "setDefaultImpl aborts on a second call" am: 196feae6 am: 2804e79b

Change-Id: I491f1842da06d5bf0dfc8facc9bd031c024d565a
parents 1177b33f 2804e79b
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -20,6 +20,8 @@

#include <binder/Binder.h>

#include <assert.h>

namespace android {

// ----------------------------------------------------------------------
@@ -155,7 +157,11 @@ public: \
    std::unique_ptr<I##INTERFACE> I##INTERFACE::default_impl;           \
    bool I##INTERFACE::setDefaultImpl(std::unique_ptr<I##INTERFACE> impl)\
    {                                                                   \
        if (!I##INTERFACE::default_impl && impl) {                      \
        /* Only one user of this interface can use this function     */ \
        /* at a time. This is a heuristic to detect if two different */ \
        /* users in the same process use this function.              */ \
        assert(!I##INTERFACE::default_impl);                            \
        if (impl) {                                                     \
            I##INTERFACE::default_impl = std::move(impl);               \
            return true;                                                \
        }                                                               \