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

Commit bf31cb6b authored by Vladimir Marko's avatar Vladimir Marko Committed by Android Git Automerger
Browse files

am 8371f2e3: Merge "Check for OOM in BitmapFactory\'s getMimeTypeString()."

* commit '8371f2e3':
  Check for OOM in BitmapFactory's getMimeTypeString().
parents 21735e22 8371f2e3
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)