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

Commit dd66bcbf authored by Elliott Hughes's avatar Elliott Hughes
Browse files

More native code cleanup.

Don't keep unused global references to classes, don't throw exceptions
when an exception is already pending, and fix a (harmless) misunderstanding
about how GetStringChars works.

Change-Id: Ie445036f057daa8a1c76aceb7bad2a84fb81d820
parent ae447967
Loading
Loading
Loading
Loading
+29 −34
Original line number Diff line number Diff line
@@ -3,7 +3,6 @@
#define RETURN_NULL_IF_NULL(value) \
    do { if (!(value)) { SkASSERT(0); return NULL; } } while (false)

static jclass       gInputStream_Clazz;
static jmethodID    gInputStream_resetMethodID;
static jmethodID    gInputStream_markMethodID;
static jmethodID    gInputStream_availableMethodID;
@@ -148,19 +147,18 @@ SkStream* CreateJavaInputStreamAdaptor(JNIEnv* env, jobject stream,
    static bool gInited;

    if (!gInited) {
        gInputStream_Clazz = env->FindClass("java/io/InputStream");
        RETURN_NULL_IF_NULL(gInputStream_Clazz);
        gInputStream_Clazz = (jclass)env->NewGlobalRef(gInputStream_Clazz);
        jclass inputStream_Clazz = env->FindClass("java/io/InputStream");
        RETURN_NULL_IF_NULL(inputStream_Clazz);

        gInputStream_resetMethodID      = env->GetMethodID(gInputStream_Clazz,
        gInputStream_resetMethodID      = env->GetMethodID(inputStream_Clazz,
                                                           "reset", "()V");
        gInputStream_markMethodID       = env->GetMethodID(gInputStream_Clazz,
        gInputStream_markMethodID       = env->GetMethodID(inputStream_Clazz,
                                                           "mark", "(I)V");
        gInputStream_availableMethodID  = env->GetMethodID(gInputStream_Clazz,
        gInputStream_availableMethodID  = env->GetMethodID(inputStream_Clazz,
                                                           "available", "()I");
        gInputStream_readMethodID       = env->GetMethodID(gInputStream_Clazz,
        gInputStream_readMethodID       = env->GetMethodID(inputStream_Clazz,
                                                           "read", "([BII)I");
        gInputStream_skipMethodID       = env->GetMethodID(gInputStream_Clazz,
        gInputStream_skipMethodID       = env->GetMethodID(inputStream_Clazz,
                                                           "skip", "(J)J");

        RETURN_NULL_IF_NULL(gInputStream_resetMethodID);
@@ -181,7 +179,6 @@ SkStream* CreateJavaInputStreamAdaptor(JNIEnv* env, jobject stream,

///////////////////////////////////////////////////////////////////////////////

static jclass       gOutputStream_Clazz;
static jmethodID    gOutputStream_writeMethodID;
static jmethodID    gOutputStream_flushMethodID;

@@ -242,14 +239,13 @@ SkWStream* CreateJavaOutputStreamAdaptor(JNIEnv* env, jobject stream,
    static bool gInited;

    if (!gInited) {
        gOutputStream_Clazz = env->FindClass("java/io/OutputStream");
        RETURN_NULL_IF_NULL(gOutputStream_Clazz);
        gOutputStream_Clazz = (jclass)env->NewGlobalRef(gOutputStream_Clazz);
        jclass outputStream_Clazz = env->FindClass("java/io/OutputStream");
        RETURN_NULL_IF_NULL(outputStream_Clazz);

        gOutputStream_writeMethodID = env->GetMethodID(gOutputStream_Clazz,
        gOutputStream_writeMethodID = env->GetMethodID(outputStream_Clazz,
                                                       "write", "([BII)V");
        RETURN_NULL_IF_NULL(gOutputStream_writeMethodID);
        gOutputStream_flushMethodID = env->GetMethodID(gOutputStream_Clazz,
        gOutputStream_flushMethodID = env->GetMethodID(outputStream_Clazz,
                                                       "flush", "()V");
        RETURN_NULL_IF_NULL(gOutputStream_flushMethodID);

@@ -258,4 +254,3 @@ SkWStream* CreateJavaOutputStreamAdaptor(JNIEnv* env, jobject stream,

    return new SkJavaOutputStream(env, stream, storage);
}
+1 −1
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ static struct {
static void android_content_res_ObbScanner_getObbInfo(JNIEnv* env, jobject clazz, jstring file,
        jobject obbInfo)
{
    const char* filePath = env->GetStringUTFChars(file, JNI_FALSE);
    const char* filePath = env->GetStringUTFChars(file, NULL);

    sp<ObbFile> obb = new ObbFile();
    if (!obb->readFrom(filePath)) {
+0 −2
Original line number Diff line number Diff line
@@ -93,8 +93,6 @@ static EmojiFactoryCaller* gCaller;
static pthread_once_t g_once = PTHREAD_ONCE_INIT;
static bool lib_emoji_factory_is_ready;

static jclass    gString_class;

static jclass    gBitmap_class;
static jmethodID gBitmap_constructorMethodID;

+0 −7
Original line number Diff line number Diff line
@@ -54,13 +54,6 @@ static JNINativeMethod method_table[] = {

int register_android_hardware_UsbDevice(JNIEnv *env)
{
    jclass clazz = env->FindClass("android/hardware/usb/UsbDevice");
    if (clazz == NULL) {
        LOGE("Can't find android/hardware/usb/UsbDevice");
        return -1;
    }

    return AndroidRuntime::registerNativeMethods(env, "android/hardware/usb/UsbDevice",
            method_table, NELEM(method_table));
}
+8 −11
Original line number Diff line number Diff line
@@ -225,9 +225,6 @@ static JNINativeMethod gNetworkUtilMethods[] = {

int register_android_net_NetworkUtils(JNIEnv* env)
{
    jclass netutils = env->FindClass(NETUTILS_PKG_NAME);
    LOG_FATAL_IF(netutils == NULL, "Unable to find class " NETUTILS_PKG_NAME);

    jclass dhcpInfoInternalClass = env->FindClass("android/net/DhcpInfoInternal");
    LOG_FATAL_IF(dhcpInfoInternalClass == NULL, "Unable to find class android/net/DhcpInfoInternal");
    dhcpInfoInternalFieldIds.constructorId = env->GetMethodID(dhcpInfoInternalClass, "<init>", "()V");
Loading