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

Commit 9e2d6e97 authored by Jeff Brown's avatar Jeff Brown Committed by Android (Google) Code Review
Browse files

Merge "Fix bug with phantom input windows." into gingerbread

parents 8849c6f6 0a128e3c
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -171,6 +171,8 @@ public:
            status_t            append(const char* other);
            status_t            append(const char* other, size_t numChars);

            status_t            appendFormat(const char* fmt, ...);

            // Note that this function takes O(N) time to calculate the value.
            // No cache value is stored.
            size_t              getUtf32Length() const;
+29 −7
Original line number Diff line number Diff line
@@ -372,6 +372,27 @@ status_t String8::append(const char* other, size_t otherLen)
    return real_append(other, otherLen);
}

status_t String8::appendFormat(const char* fmt, ...)
{
    va_list ap;
    va_start(ap, fmt);

    int result = NO_ERROR;
    int n = vsnprintf(NULL, 0, fmt, ap);
    if (n != 0) {
        size_t oldLength = length();
        char* buf = lockBuffer(oldLength + n);
        if (buf) {
            vsnprintf(buf + oldLength, n + 1, fmt, ap);
        } else {
            result = NO_MEMORY;
        }
    }

    va_end(ap);
    return result;
}

status_t String8::real_append(const char* other, size_t otherLen)
{
    const size_t myLen = bytes();
@@ -411,15 +432,16 @@ status_t String8::unlockBuffer(size_t size)
    if (size != this->size()) {
        SharedBuffer* buf = SharedBuffer::bufferFromData(mString)
            ->editResize(size+1);
        if (buf) {
        if (! buf) {
            return NO_MEMORY;
        }

        char* str = (char*)buf->data();
        str[size] = 0;
        mString = str;
            return NO_ERROR;
        }
    }

    return NO_MEMORY;
    return NO_ERROR;
}

ssize_t String8::find(const char* other, size_t start) const