From 8accee4f0e94f19866d260be6eecd6c219eb4982 Mon Sep 17 00:00:00 2001 From: Lajos Molnar Date: Wed, 6 Aug 2014 11:32:00 -0700 Subject: stagefright: add AString parceling, and equal/compareIgnoreCase Bug: 11990470 Change-Id: If43ada5d2e768931f4409e499eaa268edade0500 --- media/libstagefright/foundation/AString.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'media/libstagefright/foundation') diff --git a/media/libstagefright/foundation/AString.cpp b/media/libstagefright/foundation/AString.cpp index 894f65c..1befef4 100644 --- a/media/libstagefright/foundation/AString.cpp +++ b/media/libstagefright/foundation/AString.cpp @@ -20,6 +20,7 @@ #include #include +#include #include #include "ADebug.h" #include "AString.h" @@ -306,6 +307,14 @@ int AString::compare(const AString &other) const { return strcmp(mData, other.mData); } +int AString::compareIgnoreCase(const AString &other) const { + return strcasecmp(mData, other.mData); +} + +bool AString::equalsIgnoreCase(const AString &other) const { + return compareIgnoreCase(other) == 0; +} + void AString::tolower() { makeMutable(); @@ -342,6 +351,21 @@ bool AString::endsWithIgnoreCase(const char *suffix) const { return !strcasecmp(mData + mSize - suffixLen, suffix); } +// static +AString AString::FromParcel(const Parcel &parcel) { + size_t size = static_cast(parcel.readInt32()); + return AString(static_cast(parcel.readInplace(size)), size); +} + +status_t AString::writeToParcel(Parcel *parcel) const { + CHECK_LE(mSize, INT32_MAX); + status_t err = parcel->writeInt32(mSize); + if (err == OK) { + err = parcel->write(mData, mSize); + } + return err; +} + AString StringPrintf(const char *format, ...) { va_list ap; va_start(ap, format); -- cgit v1.1