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

Commit 1c32772f authored by Ben Wagner's avatar Ben Wagner
Browse files

Replace sk_throw with LOG_ALWAYS_FATAL.

The sk_throw macro is now just defined to be SK_ABORT, which is designed
to crash Skia. Replacing sk_throw with LOG_ALWAYS_FATAL should be both
more idomatic and more functional.

In addition this replaces SkASSERT with ALOG_ASSERT in the one file
affected.

Test: refactoring CL. Existing unit tests still pass.
Change-Id: I4e0bd382d9da27e08febec487b43cf83537dce12
parent f5a87f70
Loading
Loading
Loading
Loading
+31 −31
Original line number Original line Diff line number Diff line
@@ -62,11 +62,11 @@ bool GraphicsJNI::hasException(JNIEnv *env) {
AutoJavaFloatArray::AutoJavaFloatArray(JNIEnv* env, jfloatArray array,
AutoJavaFloatArray::AutoJavaFloatArray(JNIEnv* env, jfloatArray array,
                                       int minLength, JNIAccess access)
                                       int minLength, JNIAccess access)
: fEnv(env), fArray(array), fPtr(NULL), fLen(0) {
: fEnv(env), fArray(array), fPtr(NULL), fLen(0) {
    SkASSERT(env);
    ALOG_ASSERT(env);
    if (array) {
    if (array) {
        fLen = env->GetArrayLength(array);
        fLen = env->GetArrayLength(array);
        if (fLen < minLength) {
        if (fLen < minLength) {
            sk_throw();
            LOG_ALWAYS_FATAL("bad length");
        }
        }
        fPtr = env->GetFloatArrayElements(array, NULL);
        fPtr = env->GetFloatArrayElements(array, NULL);
    }
    }
@@ -82,11 +82,11 @@ AutoJavaFloatArray::~AutoJavaFloatArray() {
AutoJavaIntArray::AutoJavaIntArray(JNIEnv* env, jintArray array,
AutoJavaIntArray::AutoJavaIntArray(JNIEnv* env, jintArray array,
                                       int minLength)
                                       int minLength)
: fEnv(env), fArray(array), fPtr(NULL), fLen(0) {
: fEnv(env), fArray(array), fPtr(NULL), fLen(0) {
    SkASSERT(env);
    ALOG_ASSERT(env);
    if (array) {
    if (array) {
        fLen = env->GetArrayLength(array);
        fLen = env->GetArrayLength(array);
        if (fLen < minLength) {
        if (fLen < minLength) {
            sk_throw();
            LOG_ALWAYS_FATAL("bad length");
        }
        }
        fPtr = env->GetIntArrayElements(array, NULL);
        fPtr = env->GetIntArrayElements(array, NULL);
    }
    }
@@ -101,11 +101,11 @@ AutoJavaIntArray::~AutoJavaIntArray() {
AutoJavaShortArray::AutoJavaShortArray(JNIEnv* env, jshortArray array,
AutoJavaShortArray::AutoJavaShortArray(JNIEnv* env, jshortArray array,
                                       int minLength, JNIAccess access)
                                       int minLength, JNIAccess access)
: fEnv(env), fArray(array), fPtr(NULL), fLen(0) {
: fEnv(env), fArray(array), fPtr(NULL), fLen(0) {
    SkASSERT(env);
    ALOG_ASSERT(env);
    if (array) {
    if (array) {
        fLen = env->GetArrayLength(array);
        fLen = env->GetArrayLength(array);
        if (fLen < minLength) {
        if (fLen < minLength) {
            sk_throw();
            LOG_ALWAYS_FATAL("bad length");
        }
        }
        fPtr = env->GetShortArrayElements(array, NULL);
        fPtr = env->GetShortArrayElements(array, NULL);
    }
    }
@@ -121,11 +121,11 @@ AutoJavaShortArray::~AutoJavaShortArray() {
AutoJavaByteArray::AutoJavaByteArray(JNIEnv* env, jbyteArray array,
AutoJavaByteArray::AutoJavaByteArray(JNIEnv* env, jbyteArray array,
                                       int minLength)
                                       int minLength)
: fEnv(env), fArray(array), fPtr(NULL), fLen(0) {
: fEnv(env), fArray(array), fPtr(NULL), fLen(0) {
    SkASSERT(env);
    ALOG_ASSERT(env);
    if (array) {
    if (array) {
        fLen = env->GetArrayLength(array);
        fLen = env->GetArrayLength(array);
        if (fLen < minLength) {
        if (fLen < minLength) {
            sk_throw();
            LOG_ALWAYS_FATAL("bad length");
        }
        }
        fPtr = env->GetByteArrayElements(array, NULL);
        fPtr = env->GetByteArrayElements(array, NULL);
    }
    }
@@ -211,7 +211,7 @@ static jmethodID gTransferParameters_constructorMethodID;


void GraphicsJNI::get_jrect(JNIEnv* env, jobject obj, int* L, int* T, int* R, int* B)
void GraphicsJNI::get_jrect(JNIEnv* env, jobject obj, int* L, int* T, int* R, int* B)
{
{
    SkASSERT(env->IsInstanceOf(obj, gRect_class));
    ALOG_ASSERT(env->IsInstanceOf(obj, gRect_class));


    *L = env->GetIntField(obj, gRect_leftFieldID);
    *L = env->GetIntField(obj, gRect_leftFieldID);
    *T = env->GetIntField(obj, gRect_topFieldID);
    *T = env->GetIntField(obj, gRect_topFieldID);
@@ -221,7 +221,7 @@ void GraphicsJNI::get_jrect(JNIEnv* env, jobject obj, int* L, int* T, int* R, in


void GraphicsJNI::set_jrect(JNIEnv* env, jobject obj, int L, int T, int R, int B)
void GraphicsJNI::set_jrect(JNIEnv* env, jobject obj, int L, int T, int R, int B)
{
{
    SkASSERT(env->IsInstanceOf(obj, gRect_class));
    ALOG_ASSERT(env->IsInstanceOf(obj, gRect_class));


    env->SetIntField(obj, gRect_leftFieldID, L);
    env->SetIntField(obj, gRect_leftFieldID, L);
    env->SetIntField(obj, gRect_topFieldID, T);
    env->SetIntField(obj, gRect_topFieldID, T);
@@ -231,7 +231,7 @@ void GraphicsJNI::set_jrect(JNIEnv* env, jobject obj, int L, int T, int R, int B


SkIRect* GraphicsJNI::jrect_to_irect(JNIEnv* env, jobject obj, SkIRect* ir)
SkIRect* GraphicsJNI::jrect_to_irect(JNIEnv* env, jobject obj, SkIRect* ir)
{
{
    SkASSERT(env->IsInstanceOf(obj, gRect_class));
    ALOG_ASSERT(env->IsInstanceOf(obj, gRect_class));


    ir->set(env->GetIntField(obj, gRect_leftFieldID),
    ir->set(env->GetIntField(obj, gRect_leftFieldID),
            env->GetIntField(obj, gRect_topFieldID),
            env->GetIntField(obj, gRect_topFieldID),
@@ -242,7 +242,7 @@ SkIRect* GraphicsJNI::jrect_to_irect(JNIEnv* env, jobject obj, SkIRect* ir)


void GraphicsJNI::irect_to_jrect(const SkIRect& ir, JNIEnv* env, jobject obj)
void GraphicsJNI::irect_to_jrect(const SkIRect& ir, JNIEnv* env, jobject obj)
{
{
    SkASSERT(env->IsInstanceOf(obj, gRect_class));
    ALOG_ASSERT(env->IsInstanceOf(obj, gRect_class));


    env->SetIntField(obj, gRect_leftFieldID, ir.fLeft);
    env->SetIntField(obj, gRect_leftFieldID, ir.fLeft);
    env->SetIntField(obj, gRect_topFieldID, ir.fTop);
    env->SetIntField(obj, gRect_topFieldID, ir.fTop);
@@ -252,7 +252,7 @@ void GraphicsJNI::irect_to_jrect(const SkIRect& ir, JNIEnv* env, jobject obj)


SkRect* GraphicsJNI::jrectf_to_rect(JNIEnv* env, jobject obj, SkRect* r)
SkRect* GraphicsJNI::jrectf_to_rect(JNIEnv* env, jobject obj, SkRect* r)
{
{
    SkASSERT(env->IsInstanceOf(obj, gRectF_class));
    ALOG_ASSERT(env->IsInstanceOf(obj, gRectF_class));


    r->set(env->GetFloatField(obj, gRectF_leftFieldID),
    r->set(env->GetFloatField(obj, gRectF_leftFieldID),
           env->GetFloatField(obj, gRectF_topFieldID),
           env->GetFloatField(obj, gRectF_topFieldID),
@@ -263,7 +263,7 @@ SkRect* GraphicsJNI::jrectf_to_rect(JNIEnv* env, jobject obj, SkRect* r)


SkRect* GraphicsJNI::jrect_to_rect(JNIEnv* env, jobject obj, SkRect* r)
SkRect* GraphicsJNI::jrect_to_rect(JNIEnv* env, jobject obj, SkRect* r)
{
{
    SkASSERT(env->IsInstanceOf(obj, gRect_class));
    ALOG_ASSERT(env->IsInstanceOf(obj, gRect_class));


    r->set(SkIntToScalar(env->GetIntField(obj, gRect_leftFieldID)),
    r->set(SkIntToScalar(env->GetIntField(obj, gRect_leftFieldID)),
           SkIntToScalar(env->GetIntField(obj, gRect_topFieldID)),
           SkIntToScalar(env->GetIntField(obj, gRect_topFieldID)),
@@ -274,7 +274,7 @@ SkRect* GraphicsJNI::jrect_to_rect(JNIEnv* env, jobject obj, SkRect* r)


void GraphicsJNI::rect_to_jrectf(const SkRect& r, JNIEnv* env, jobject obj)
void GraphicsJNI::rect_to_jrectf(const SkRect& r, JNIEnv* env, jobject obj)
{
{
    SkASSERT(env->IsInstanceOf(obj, gRectF_class));
    ALOG_ASSERT(env->IsInstanceOf(obj, gRectF_class));


    env->SetFloatField(obj, gRectF_leftFieldID, SkScalarToFloat(r.fLeft));
    env->SetFloatField(obj, gRectF_leftFieldID, SkScalarToFloat(r.fLeft));
    env->SetFloatField(obj, gRectF_topFieldID, SkScalarToFloat(r.fTop));
    env->SetFloatField(obj, gRectF_topFieldID, SkScalarToFloat(r.fTop));
@@ -284,7 +284,7 @@ void GraphicsJNI::rect_to_jrectf(const SkRect& r, JNIEnv* env, jobject obj)


SkIPoint* GraphicsJNI::jpoint_to_ipoint(JNIEnv* env, jobject obj, SkIPoint* point)
SkIPoint* GraphicsJNI::jpoint_to_ipoint(JNIEnv* env, jobject obj, SkIPoint* point)
{
{
    SkASSERT(env->IsInstanceOf(obj, gPoint_class));
    ALOG_ASSERT(env->IsInstanceOf(obj, gPoint_class));


    point->set(env->GetIntField(obj, gPoint_xFieldID),
    point->set(env->GetIntField(obj, gPoint_xFieldID),
               env->GetIntField(obj, gPoint_yFieldID));
               env->GetIntField(obj, gPoint_yFieldID));
@@ -293,7 +293,7 @@ SkIPoint* GraphicsJNI::jpoint_to_ipoint(JNIEnv* env, jobject obj, SkIPoint* poin


void GraphicsJNI::ipoint_to_jpoint(const SkIPoint& ir, JNIEnv* env, jobject obj)
void GraphicsJNI::ipoint_to_jpoint(const SkIPoint& ir, JNIEnv* env, jobject obj)
{
{
    SkASSERT(env->IsInstanceOf(obj, gPoint_class));
    ALOG_ASSERT(env->IsInstanceOf(obj, gPoint_class));


    env->SetIntField(obj, gPoint_xFieldID, ir.fX);
    env->SetIntField(obj, gPoint_xFieldID, ir.fX);
    env->SetIntField(obj, gPoint_yFieldID, ir.fY);
    env->SetIntField(obj, gPoint_yFieldID, ir.fY);
@@ -301,7 +301,7 @@ void GraphicsJNI::ipoint_to_jpoint(const SkIPoint& ir, JNIEnv* env, jobject obj)


SkPoint* GraphicsJNI::jpointf_to_point(JNIEnv* env, jobject obj, SkPoint* point)
SkPoint* GraphicsJNI::jpointf_to_point(JNIEnv* env, jobject obj, SkPoint* point)
{
{
    SkASSERT(env->IsInstanceOf(obj, gPointF_class));
    ALOG_ASSERT(env->IsInstanceOf(obj, gPointF_class));


    point->set(env->GetIntField(obj, gPointF_xFieldID),
    point->set(env->GetIntField(obj, gPointF_xFieldID),
               env->GetIntField(obj, gPointF_yFieldID));
               env->GetIntField(obj, gPointF_yFieldID));
@@ -310,7 +310,7 @@ SkPoint* GraphicsJNI::jpointf_to_point(JNIEnv* env, jobject obj, SkPoint* point)


void GraphicsJNI::point_to_jpointf(const SkPoint& r, JNIEnv* env, jobject obj)
void GraphicsJNI::point_to_jpointf(const SkPoint& r, JNIEnv* env, jobject obj)
{
{
    SkASSERT(env->IsInstanceOf(obj, gPointF_class));
    ALOG_ASSERT(env->IsInstanceOf(obj, gPointF_class));


    env->SetFloatField(obj, gPointF_xFieldID, SkScalarToFloat(r.fX));
    env->SetFloatField(obj, gPointF_xFieldID, SkScalarToFloat(r.fX));
    env->SetFloatField(obj, gPointF_yFieldID, SkScalarToFloat(r.fY));
    env->SetFloatField(obj, gPointF_yFieldID, SkScalarToFloat(r.fY));
@@ -364,17 +364,17 @@ SkPixelRef* GraphicsJNI::refSkPixelRef(JNIEnv* env, jobject jbitmap) {
    return &bitmap;
    return &bitmap;
}
}
SkColorType GraphicsJNI::getNativeBitmapColorType(JNIEnv* env, jobject jconfig) {
SkColorType GraphicsJNI::getNativeBitmapColorType(JNIEnv* env, jobject jconfig) {
    SkASSERT(env);
    ALOG_ASSERT(env);
    if (NULL == jconfig) {
    if (NULL == jconfig) {
        return kUnknown_SkColorType;
        return kUnknown_SkColorType;
    }
    }
    SkASSERT(env->IsInstanceOf(jconfig, gBitmapConfig_class));
    ALOG_ASSERT(env->IsInstanceOf(jconfig, gBitmapConfig_class));
    int c = env->GetIntField(jconfig, gBitmapConfig_nativeInstanceID);
    int c = env->GetIntField(jconfig, gBitmapConfig_nativeInstanceID);
    return legacyBitmapConfigToColorType(c);
    return legacyBitmapConfigToColorType(c);
}
}


bool GraphicsJNI::isHardwareConfig(JNIEnv* env, jobject jconfig) {
bool GraphicsJNI::isHardwareConfig(JNIEnv* env, jobject jconfig) {
    SkASSERT(env);
    ALOG_ASSERT(env);
    if (NULL == jconfig) {
    if (NULL == jconfig) {
        return false;
        return false;
    }
    }
@@ -387,9 +387,9 @@ jint GraphicsJNI::hardwareLegacyBitmapConfig() {
}
}


android::Canvas* GraphicsJNI::getNativeCanvas(JNIEnv* env, jobject canvas) {
android::Canvas* GraphicsJNI::getNativeCanvas(JNIEnv* env, jobject canvas) {
    SkASSERT(env);
    ALOG_ASSERT(env);
    SkASSERT(canvas);
    ALOG_ASSERT(canvas);
    SkASSERT(env->IsInstanceOf(canvas, gCanvas_class));
    ALOG_ASSERT(env->IsInstanceOf(canvas, gCanvas_class));
    jlong canvasHandle = env->GetLongField(canvas, gCanvas_nativeInstanceID);
    jlong canvasHandle = env->GetLongField(canvas, gCanvas_nativeInstanceID);
    if (!canvasHandle) {
    if (!canvasHandle) {
        return NULL;
        return NULL;
@@ -399,12 +399,12 @@ android::Canvas* GraphicsJNI::getNativeCanvas(JNIEnv* env, jobject canvas) {


SkRegion* GraphicsJNI::getNativeRegion(JNIEnv* env, jobject region)
SkRegion* GraphicsJNI::getNativeRegion(JNIEnv* env, jobject region)
{
{
    SkASSERT(env);
    ALOG_ASSERT(env);
    SkASSERT(region);
    ALOG_ASSERT(region);
    SkASSERT(env->IsInstanceOf(region, gRegion_class));
    ALOG_ASSERT(env->IsInstanceOf(region, gRegion_class));
    jlong regionHandle = env->GetLongField(region, gRegion_nativeInstanceID);
    jlong regionHandle = env->GetLongField(region, gRegion_nativeInstanceID);
    SkRegion* r = reinterpret_cast<SkRegion*>(regionHandle);
    SkRegion* r = reinterpret_cast<SkRegion*>(regionHandle);
    SkASSERT(r);
    ALOG_ASSERT(r);
    return r;
    return r;
}
}


@@ -412,7 +412,7 @@ SkRegion* GraphicsJNI::getNativeRegion(JNIEnv* env, jobject region)


jobject GraphicsJNI::createBitmapRegionDecoder(JNIEnv* env, SkBitmapRegionDecoder* bitmap)
jobject GraphicsJNI::createBitmapRegionDecoder(JNIEnv* env, SkBitmapRegionDecoder* bitmap)
{
{
    SkASSERT(bitmap != NULL);
    ALOG_ASSERT(bitmap != NULL);


    jobject obj = env->NewObject(gBitmapRegionDecoder_class,
    jobject obj = env->NewObject(gBitmapRegionDecoder_class,
            gBitmapRegionDecoder_constructorMethodID,
            gBitmapRegionDecoder_constructorMethodID,
@@ -423,7 +423,7 @@ jobject GraphicsJNI::createBitmapRegionDecoder(JNIEnv* env, SkBitmapRegionDecode


jobject GraphicsJNI::createRegion(JNIEnv* env, SkRegion* region)
jobject GraphicsJNI::createRegion(JNIEnv* env, SkRegion* region)
{
{
    SkASSERT(region != NULL);
    ALOG_ASSERT(region != NULL);
    jobject obj = env->NewObject(gRegion_class, gRegion_constructorMethodID,
    jobject obj = env->NewObject(gRegion_class, gRegion_constructorMethodID,
                                 reinterpret_cast<jlong>(region), 0);
                                 reinterpret_cast<jlong>(region), 0);
    hasException(env); // For the side effect of logging.
    hasException(env); // For the side effect of logging.