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

Commit 2804e79b authored by Jooyung Han's avatar Jooyung Han Committed by Automerger Merge Worker
Browse files

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

Change-Id: Ieea885b8da74402cb90fcd0ba391b63bc1dd4a4a
parents 348141ce 196feae6
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;                                                \
        }                                                               \