Merge "Move from SkData::NewXXX to SkData::MakeXXX."
This commit is contained in:
@@ -41,11 +41,10 @@
|
||||
|
||||
using namespace android;
|
||||
|
||||
// Takes ownership of the SkStreamRewindable. For consistency, deletes stream even
|
||||
// when returning null.
|
||||
static jobject createBitmapRegionDecoder(JNIEnv* env, SkStreamRewindable* stream) {
|
||||
static jobject createBitmapRegionDecoder(JNIEnv* env, std::unique_ptr<SkStreamRewindable> stream) {
|
||||
SkAutoTDelete<SkBitmapRegionDecoder> brd(
|
||||
SkBitmapRegionDecoder::Create(stream, SkBitmapRegionDecoder::kAndroidCodec_Strategy));
|
||||
SkBitmapRegionDecoder::Create(stream.release(),
|
||||
SkBitmapRegionDecoder::kAndroidCodec_Strategy));
|
||||
if (NULL == brd) {
|
||||
doThrowIOE(env, "Image format not supported");
|
||||
return nullObjectReturn("CreateBitmapRegionDecoder returned null");
|
||||
@@ -61,10 +60,10 @@ static jobject nativeNewInstanceFromByteArray(JNIEnv* env, jobject, jbyteArray b
|
||||
For now we just always copy the array's data if isShareable.
|
||||
*/
|
||||
AutoJavaByteArray ar(env, byteArray);
|
||||
SkMemoryStream* stream = new SkMemoryStream(ar.ptr() + offset, length, true);
|
||||
std::unique_ptr<SkMemoryStream> stream(new SkMemoryStream(ar.ptr() + offset, length, true));
|
||||
|
||||
// the decoder owns the stream.
|
||||
jobject brd = createBitmapRegionDecoder(env, stream);
|
||||
jobject brd = createBitmapRegionDecoder(env, std::move(stream));
|
||||
return brd;
|
||||
}
|
||||
|
||||
@@ -80,11 +79,11 @@ static jobject nativeNewInstanceFromFileDescriptor(JNIEnv* env, jobject clazz,
|
||||
return nullObjectReturn("fstat return -1");
|
||||
}
|
||||
|
||||
SkAutoTUnref<SkData> data(SkData::NewFromFD(descriptor));
|
||||
SkMemoryStream* stream = new SkMemoryStream(data);
|
||||
sk_sp<SkData> data(SkData::MakeFromFD(descriptor));
|
||||
std::unique_ptr<SkMemoryStream> stream(new SkMemoryStream(std::move(data)));
|
||||
|
||||
// the decoder owns the stream.
|
||||
jobject brd = createBitmapRegionDecoder(env, stream);
|
||||
jobject brd = createBitmapRegionDecoder(env, std::move(stream));
|
||||
return brd;
|
||||
}
|
||||
|
||||
@@ -94,11 +93,11 @@ static jobject nativeNewInstanceFromStream(JNIEnv* env, jobject clazz,
|
||||
jboolean isShareable) {
|
||||
jobject brd = NULL;
|
||||
// for now we don't allow shareable with java inputstreams
|
||||
SkStreamRewindable* stream = CopyJavaInputStream(env, is, storage);
|
||||
std::unique_ptr<SkStreamRewindable> stream(CopyJavaInputStream(env, is, storage));
|
||||
|
||||
if (stream) {
|
||||
// the decoder owns the stream.
|
||||
brd = createBitmapRegionDecoder(env, stream);
|
||||
brd = createBitmapRegionDecoder(env, std::move(stream));
|
||||
}
|
||||
return brd;
|
||||
}
|
||||
@@ -107,13 +106,13 @@ static jobject nativeNewInstanceFromAsset(JNIEnv* env, jobject clazz,
|
||||
jlong native_asset, // Asset
|
||||
jboolean isShareable) {
|
||||
Asset* asset = reinterpret_cast<Asset*>(native_asset);
|
||||
SkMemoryStream* stream = CopyAssetToStream(asset);
|
||||
std::unique_ptr<SkMemoryStream> stream(CopyAssetToStream(asset));
|
||||
if (NULL == stream) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
// the decoder owns the stream.
|
||||
jobject brd = createBitmapRegionDecoder(env, stream);
|
||||
jobject brd = createBitmapRegionDecoder(env, std::move(stream));
|
||||
return brd;
|
||||
}
|
||||
|
||||
|
||||
@@ -98,9 +98,9 @@ static jboolean FontFamily_addFont(JNIEnv* env, jobject clazz, jlong familyPtr,
|
||||
return false;
|
||||
}
|
||||
jobject fontRef = MakeGlobalRefOrDie(env, bytebuf);
|
||||
SkAutoTUnref<SkData> data(SkData::NewWithProc(fontPtr, fontSize,
|
||||
sk_sp<SkData> data(SkData::MakeWithProc(fontPtr, fontSize,
|
||||
release_global_ref, reinterpret_cast<void*>(fontRef)));
|
||||
std::unique_ptr<SkStreamAsset> fontData(new SkMemoryStream(data));
|
||||
std::unique_ptr<SkStreamAsset> fontData(new SkMemoryStream(std::move(data)));
|
||||
|
||||
SkFontMgr::FontParameters params;
|
||||
params.setCollectionIndex(ttcIndex);
|
||||
@@ -163,9 +163,9 @@ static jboolean FontFamily_addFontWeightStyle(JNIEnv* env, jobject clazz, jlong
|
||||
return false;
|
||||
}
|
||||
jobject fontRef = MakeGlobalRefOrDie(env, font);
|
||||
SkAutoTUnref<SkData> data(SkData::NewWithProc(fontPtr, fontSize,
|
||||
sk_sp<SkData> data(SkData::MakeWithProc(fontPtr, fontSize,
|
||||
release_global_ref, reinterpret_cast<void*>(fontRef)));
|
||||
std::unique_ptr<SkStreamAsset> fontData(new SkMemoryStream(data.get()));
|
||||
std::unique_ptr<SkStreamAsset> fontData(new SkMemoryStream(std::move(data)));
|
||||
|
||||
SkFontMgr::FontParameters params;
|
||||
params.setCollectionIndex(ttcIndex);
|
||||
@@ -212,10 +212,11 @@ static jboolean FontFamily_addFontFromAsset(JNIEnv* env, jobject, jlong familyPt
|
||||
}
|
||||
|
||||
size_t bufSize = asset->getLength();
|
||||
SkAutoTUnref<SkData> data(SkData::NewWithProc(buf, asset->getLength(), releaseAsset, asset));
|
||||
SkMemoryStream* stream = new SkMemoryStream(data.get());
|
||||
// CreateFromStream takes ownership of stream.
|
||||
SkTypeface* face = SkTypeface::CreateFromStream(stream);
|
||||
sk_sp<SkData> data(SkData::MakeWithProc(buf, asset->getLength(), releaseAsset, asset));
|
||||
std::unique_ptr<SkStreamAsset> fontData(new SkMemoryStream(std::move(data)));
|
||||
|
||||
SkAutoTUnref<SkFontMgr> fm(SkFontMgr::RefDefault());
|
||||
SkTypeface* face = fm->createFromStream(fontData.release(), SkFontMgr::FontParameters());
|
||||
if (face == NULL) {
|
||||
ALOGE("addFontFromAsset failed to create font %s", str.c_str());
|
||||
return false;
|
||||
|
||||
@@ -100,14 +100,14 @@ SkMemoryStream* android::CopyAssetToStream(Asset* asset) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
SkAutoTUnref<SkData> data(SkData::NewUninitialized(size));
|
||||
sk_sp<SkData> data(SkData::MakeUninitialized(size));
|
||||
const off64_t len = asset->read(data->writable_data(), size);
|
||||
if (len != size) {
|
||||
SkDebugf("---- copyAsset: asset->read(%d) returned %d\n", size, len);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return new SkMemoryStream(data);
|
||||
return new SkMemoryStream(std::move(data));
|
||||
}
|
||||
|
||||
jobject android::nullObjectReturn(const char msg[]) {
|
||||
|
||||
Reference in New Issue
Block a user