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

Commit 8371f2e3 authored by Vladimir Marko's avatar Vladimir Marko Committed by Gerrit Code Review
Browse files

Merge "Check for OOM in BitmapFactory's getMimeTypeString()."

parents dcf323ad 7ab249a1
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -63,7 +63,7 @@ jstring getMimeTypeString(JNIEnv* env, SkImageDecoder::Format format) {
        { SkImageDecoder::kWBMP_Format, "image/vnd.wap.wbmp" }
    };

    const char* cstr = NULL;
    const char* cstr = nullptr;
    for (size_t i = 0; i < SK_ARRAY_COUNT(gMimeTypes); i++) {
        if (gMimeTypes[i].fFormat == format) {
            cstr = gMimeTypes[i].fMimeType;
@@ -71,8 +71,10 @@ jstring getMimeTypeString(JNIEnv* env, SkImageDecoder::Format format) {
        }
    }

    jstring jstr = 0;
    if (NULL != cstr) {
    jstring jstr = nullptr;
    if (cstr != nullptr) {
        // NOTE: Caller should env->ExceptionCheck() for OOM
        // (can't check for nullptr as it's a valid return value)
        jstr = env->NewStringUTF(cstr);
    }
    return jstr;
@@ -323,10 +325,13 @@ static jobject doDecode(JNIEnv* env, SkStreamRewindable* stream, jobject padding

    // update options (if any)
    if (options != NULL) {
        jstring mimeType = getMimeTypeString(env, decoder->getFormat());
        if (env->ExceptionCheck()) {
            return nullObjectReturn("OOM in getMimeTypeString()");
        }
        env->SetIntField(options, gOptions_widthFieldID, scaledWidth);
        env->SetIntField(options, gOptions_heightFieldID, scaledHeight);
        env->SetObjectField(options, gOptions_mimeFieldID,
                getMimeTypeString(env, decoder->getFormat()));
        env->SetObjectField(options, gOptions_mimeFieldID, mimeType);
    }

    // if we're in justBounds mode, return now (skip the java bitmap)