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

Commit 58e5daae authored by Ganesh Mahendran's avatar Ganesh Mahendran
Browse files

binder: remove unnecessary err check



In function IPCThreadState::transact(), data.errorCheck() will
be executed twice. Since IPCThreadState::transact() is the
critical path for binder call, it is better to do data.errorCheck()
once.

This patch removes the first check at the beginning of
IPCThreadState::transact(), the effect of this change is that LOG_ONEWAY(...)
will be executed in error case("data.errorCheck() != NO_ERROR")

I think this is not a problem. As "data.errorCheck() == NO_ERROR" is the
normal case(which will execute LOG_ONEWAY()), and even in error case,
we print a log about src/dst pid is not a bad idea.

Change-Id: I7b892a2294774c55ce0df56edee6a820f82c6f13
Signed-off-by: default avatarGanesh Mahendran <opensource.ganesh@gmail.com>
parent 25606929
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -571,7 +571,7 @@ status_t IPCThreadState::transact(int32_t handle,
                                  uint32_t code, const Parcel& data,
                                  Parcel* reply, uint32_t flags)
{
    status_t err = data.errorCheck();
    status_t err;

    flags |= TF_ACCEPT_FDS;

@@ -582,11 +582,9 @@ status_t IPCThreadState::transact(int32_t handle,
            << indent << data << dedent << endl;
    }

    if (err == NO_ERROR) {
    LOG_ONEWAY(">>>> SEND from pid %d uid %d %s", getpid(), getuid(),
        (flags & TF_ONE_WAY) == 0 ? "READ REPLY" : "ONE WAY");
    err = writeTransactionData(BC_TRANSACTION, flags, handle, code, data, NULL);
    }

    if (err != NO_ERROR) {
        if (reply) reply->setError(err);