summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorWei-Ta Chen <weita@google.com>2010-10-22 11:22:59 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-10-22 11:22:59 -0700
commit50db92c452ece8d52d898d1ed289bbb3c43859ed (patch)
tree6e5784366d1bfe6148cbd5b75f63caad50188f3a /core
parentdca9cd6dd00d2db74e26b500180c9b4516b3cb61 (diff)
parent58c1579ce2634de31d24429c1b870d4256ee4f21 (diff)
downloadframeworks_base-50db92c452ece8d52d898d1ed289bbb3c43859ed.zip
frameworks_base-50db92c452ece8d52d898d1ed289bbb3c43859ed.tar.gz
frameworks_base-50db92c452ece8d52d898d1ed289bbb3c43859ed.tar.bz2
Merge "Fix 3122139, where previewing an attachment for the second time will fail."
Diffstat (limited to 'core')
-rw-r--r--core/jni/android/graphics/BitmapRegionDecoder.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/core/jni/android/graphics/BitmapRegionDecoder.cpp b/core/jni/android/graphics/BitmapRegionDecoder.cpp
index f700791..bf18d55 100644
--- a/core/jni/android/graphics/BitmapRegionDecoder.cpp
+++ b/core/jni/android/graphics/BitmapRegionDecoder.cpp
@@ -65,6 +65,7 @@ static SkMemoryStream* buildSkMemoryStream(SkStream *stream) {
}
}
data = (char*)sk_realloc_throw(data, streamLen);
+
SkMemoryStream* streamMem = new SkMemoryStream();
streamMem->setMemoryOwned(data, streamLen);
return streamMem;
@@ -133,6 +134,12 @@ static jobject nativeNewInstanceFromFileDescriptor(JNIEnv* env, jobject clazz,
}
stream = fdStream;
} else {
+ /* Restore our offset when we leave, so we can be called more than once
+ with the same descriptor. This is only required if we didn't dup the
+ file descriptor, but it is OK to do it all the time.
+ */
+ AutoFDSeek as(descriptor);
+
SkFDStream* fdStream = new SkFDStream(descriptor, false);
if (!fdStream->isValid()) {
fdStream->unref();
@@ -142,12 +149,6 @@ static jobject nativeNewInstanceFromFileDescriptor(JNIEnv* env, jobject clazz,
fdStream->unref();
}
- /* Restore our offset when we leave, so we can be called more than once
- with the same descriptor. This is only required if we didn't dup the
- file descriptor, but it is OK to do it all the time.
- */
- AutoFDSeek as(descriptor);
-
return doBuildTileIndex(env, stream);
}