Check for OOM in BitmapFactory's getMimeTypeString().

Bug: 18909596

(cherry picked from commit 7ab249a18e)

Change-Id: Ie7be228442876d47faf37e3f664e378253dab6e3
This commit is contained in:
Vladimir Marko
2015-01-06 18:17:52 +00:00
parent 984823f543
commit 152d7282a4

View File

@@ -77,8 +77,10 @@ jstring getMimeTypeString(JNIEnv* env, SkImageDecoder::Format format) {
}
}
jstring jstr = 0;
if (NULL != cstr) {
jstring jstr = NULL;
if (cstr != NULL) {
// NOTE: Caller should env->ExceptionCheck() for OOM
// (can't check for NULL as it's a valid return value)
jstr = env->NewStringUTF(cstr);
}
return jstr;
@@ -330,10 +332,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)