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

Commit 5c6ec52f authored by Marco Nelissen's avatar Marco Nelissen
Browse files

Add backwards compatible versions of IInterface::asBinder()

This makes apps linked against the previous non-static versions
work with the new libbinder.

Bug: 19060033
Bug: 19773812

Change-Id: I3b5c78cbb4f4c0681ca1042e4d8503d98f969502
parent 97e61fcf
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -14,6 +14,8 @@
 * limitations under the License.
 */

#define LOG_TAG "IInterface"
#include <utils/Log.h>
#include <binder/IInterface.h>

namespace android {
@@ -41,6 +43,25 @@ sp<IBinder> IInterface::asBinder(const sp<IInterface>& iface)
    return iface->onAsBinder();
}


// ---------------------------------------------------------------------------

}; // namespace android

extern "C" {

void _ZN7android10IInterface8asBinderEv(void *retval, void* self) {
    ALOGW("deprecated asBinder call, please update your code");
    //ALOGI("self: %p, retval: %p", self, retval);
    android::sp<android::IBinder> *ret = new(retval) android::sp<android::IBinder>;
    *ret = android::IInterface::asBinder((android::IInterface*)self);
}

void _ZNK7android10IInterface8asBinderEv(void *retval, void *self) {
    ALOGW("deprecated asBinder call, please update your code");
    //ALOGI("self: %p, retval: %p", self, retval);
    android::sp<android::IBinder> *ret = new(retval) android::sp<android::IBinder>;
    *ret = android::IInterface::asBinder((android::IInterface*)self);
}

} // extern "C"