From 31a69fdbe1edd8d686043e8ca7d278289f65808e Mon Sep 17 00:00:00 2001 From: Mike Reed Date: Mon, 14 Dec 2009 14:57:01 -0500 Subject: [PATCH] throw if we have a null typeface native instance (so we don't crash in native code) we may still have to native-destroy a Typeface with a null ref, so check for that --- core/jni/android/graphics/Typeface.cpp | 2 +- graphics/java/android/graphics/Typeface.java | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/core/jni/android/graphics/Typeface.cpp b/core/jni/android/graphics/Typeface.cpp index 238ece1c849cd..7c7bfebd5f192 100644 --- a/core/jni/android/graphics/Typeface.cpp +++ b/core/jni/android/graphics/Typeface.cpp @@ -46,7 +46,7 @@ static SkTypeface* Typeface_createFromTypeface(JNIEnv* env, jobject, SkTypeface* } static void Typeface_unref(JNIEnv* env, jobject obj, SkTypeface* face) { - face->unref(); + SkSafeUnref(face); } static int Typeface_getStyle(JNIEnv* env, jobject obj, SkTypeface* face) { diff --git a/graphics/java/android/graphics/Typeface.java b/graphics/java/android/graphics/Typeface.java index f0d5a6a7ddc72..bc92d3ad8bc91 100644 --- a/graphics/java/android/graphics/Typeface.java +++ b/graphics/java/android/graphics/Typeface.java @@ -143,6 +143,9 @@ public class Typeface { // don't allow clients to call this directly private Typeface(int ni) { + if (0 == ni) { + throw new RuntimeException("native typeface cannot be made"); + } native_instance = ni; }