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

Commit d6848f52 authored by Casey Dahlin's avatar Casey Dahlin
Browse files

Add methods to Parcel for bool and char and byte



We lift these to int, but handling the details of that here will be better
than having AIDL generate casting code all the time.

Test: unit tests pass
Bug: 24981507
Change-Id: If6aa33ab5fe365dd237136a95c5d9a702af41d15
Signed-off-by: default avatarCasey Dahlin <sadmac@google.com>
parent 8e0c88ea
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -108,6 +108,9 @@ public:
    status_t            writeWeakBinder(const wp<IBinder>& val);
    status_t            writeInt32Array(size_t len, const int32_t *val);
    status_t            writeByteArray(size_t len, const uint8_t *val);
    status_t            writeBool(bool val);
    status_t            writeChar(char16_t val);
    status_t            writeByte(int8_t val);

    template<typename T>
    status_t            write(const Flattenable<T>& val);
@@ -169,6 +172,12 @@ public:
    status_t            readDouble(double *pArg) const;
    intptr_t            readIntPtr() const;
    status_t            readIntPtr(intptr_t *pArg) const;
    bool                readBool() const;
    status_t            readBool(bool *pArg) const;
    char16_t            readChar() const;
    status_t            readChar(char16_t *pArg) const;
    int8_t              readByte() const;
    status_t            readByte(int8_t *pArg) const;

    const char*         readCString() const;
    String8             readString8() const;
+53 −0
Original line number Diff line number Diff line
@@ -760,6 +760,21 @@ status_t Parcel::writeByteArray(size_t len, const uint8_t *val) {
    return ret;
}

status_t Parcel::writeBool(bool val)
{
    return writeInt32(int32_t(val));
}

status_t Parcel::writeChar(char16_t val)
{
    return writeInt32(int32_t(val));
}

status_t Parcel::writeByte(int8_t val)
{
    return writeInt32(int32_t(val));
}

status_t Parcel::writeInt64(int64_t val)
{
    return writeAligned(val);
@@ -1252,6 +1267,44 @@ intptr_t Parcel::readIntPtr() const
    return readAligned<intptr_t>();
}

status_t Parcel::readBool(bool *pArg) const
{
    int32_t tmp;
    status_t ret = readInt32(&tmp);
    *pArg = (tmp != 0);
    return ret;
}

bool Parcel::readBool() const
{
    return readInt32() != 0;
}

status_t Parcel::readChar(char16_t *pArg) const
{
    int32_t tmp;
    status_t ret = readInt32(&tmp);
    *pArg = char16_t(tmp);
    return ret;
}

char16_t Parcel::readChar() const
{
    return char16_t(readInt32());
}

status_t Parcel::readByte(int8_t *pArg) const
{
    int32_t tmp;
    status_t ret = readInt32(&tmp);
    *pArg = int8_t(tmp);
    return ret;
}

int8_t Parcel::readByte() const
{
    return int8_t(readInt32());
}

const char* Parcel::readCString() const
{