diff options
author | Elliott Hughes <enh@google.com> | 2012-05-03 17:06:04 -0700 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2012-05-03 17:06:04 -0700 |
commit | 73d3c2e3ed100f1d0ccc08a9675844bf8a0848fa (patch) | |
tree | eca84eb756be4663bbe1118cf2b9dfaec546eab7 | |
parent | e2b11e7e4077187462324810d2b8a404417ba6a2 (diff) | |
download | android_libnativehelper-73d3c2e3ed100f1d0ccc08a9675844bf8a0848fa.tar.gz android_libnativehelper-73d3c2e3ed100f1d0ccc08a9675844bf8a0848fa.tar.bz2 android_libnativehelper-73d3c2e3ed100f1d0ccc08a9675844bf8a0848fa.zip |
Make libnativehelper stand-alone.cm-10.1.3-RC2cm-10.1.3-RC1cm-10.1.3cm-10.1.2cm-10.1.1cm-10.1.0-RC5cm-10.1.0-RC4cm-10.1.0-RC3cm-10.1.0-RC2cm-10.1.0-RC1cm-10.1.0cm-10.1-M3cm-10.1-M2cm-10.1-M1mr1.1-stagingjellybean-stablejellybeancm-10.1
Bug: 6369821
Change-Id: I502211bddaf60d6097b81b35f606bbcdd1a3e092
-rw-r--r-- | Android.mk | 65 | ||||
-rw-r--r-- | JNIHelp.cpp | 16 | ||||
-rw-r--r-- | Register.cpp | 28 | ||||
-rw-r--r-- | include/nativehelper/JNIHelp.h | 3 |
4 files changed, 26 insertions, 86 deletions
@@ -15,31 +15,8 @@ LOCAL_PATH := $(call my-dir) -# -# Common definitions for host and device. -# - -src_files := \ - JNIHelp.cpp \ - Register.cpp - -c_includes := \ - $(JNI_H_INCLUDE) - -# Any shared/static libs required by libcore -# need to be mentioned here as well. -# TODO: fix this requirement - -shared_libraries := \ - libcrypto \ - libicui18n \ - libicuuc \ - libssl - -static_libraries := \ - libjavacore \ - libfdlibm - +local_src_files := \ + JNIHelp.cpp # @@ -47,14 +24,14 @@ static_libraries := \ # include $(CLEAR_VARS) - -LOCAL_SRC_FILES := $(src_files) -LOCAL_C_INCLUDES := $(c_includes) -LOCAL_STATIC_LIBRARIES := $(static_libraries) -LOCAL_SHARED_LIBRARIES := $(shared_libraries) libcutils libexpat liblog libstlport libz +LOCAL_SRC_FILES := $(local_src_files) +LOCAL_SHARED_LIBRARIES := liblog LOCAL_MODULE_TAGS := optional LOCAL_MODULE := libnativehelper +LOCAL_C_INCLUDES := external/stlport/stlport bionic/ bionic/libstdc++/include +LOCAL_SHARED_LIBRARIES += libstlport + include $(BUILD_SHARED_LIBRARY) @@ -62,25 +39,9 @@ include $(BUILD_SHARED_LIBRARY) # Build for the host. # -ifeq ($(WITH_HOST_DALVIK),true) - - include $(CLEAR_VARS) - - LOCAL_SRC_FILES := $(src_files) - LOCAL_C_INCLUDES := $(c_includes) - LOCAL_WHOLE_STATIC_LIBRARIES := $(static_libraries:%=%-host) - - ifeq ($(HOST_OS)-$(HOST_ARCH),darwin-x86) - # OSX has a lot of libraries built in, which we don't have to - # bother building; just include them on the ld line. - LOCAL_LDLIBS := -lexpat -lssl -lz -lcrypto -licucore - else - LOCAL_SHARED_LIBRARIES := $(shared_libraries) - LOCAL_STATIC_LIBRARIES := libcutils libexpat liblog libz - endif - - LOCAL_MODULE_TAGS := optional - LOCAL_MODULE := libnativehelper - include $(BUILD_HOST_STATIC_LIBRARY) - -endif +include $(CLEAR_VARS) +LOCAL_MODULE := libnativehelper +LOCAL_MODULE_TAGS := optional +LOCAL_SRC_FILES := $(local_src_files) +LOCAL_SHARED_LIBRARIES := liblog +include $(BUILD_HOST_SHARED_LIBRARY) diff --git a/JNIHelp.cpp b/JNIHelp.cpp index bf50930..041776c 100644 --- a/JNIHelp.cpp +++ b/JNIHelp.cpp @@ -310,26 +310,32 @@ static struct CachedFields { jfieldID descriptorField; } gCachedFields; -int registerJniHelp(JNIEnv* env) { +jint JNI_OnLoad(JavaVM* vm, void*) { + JNIEnv* env; + if (vm->GetEnv(reinterpret_cast<void**>(&env), JNI_VERSION_1_6) != JNI_OK) { + ALOGE("JavaVM::GetEnv() failed"); + abort(); + } + gCachedFields.fileDescriptorClass = reinterpret_cast<jclass>(env->NewGlobalRef(env->FindClass("java/io/FileDescriptor"))); if (gCachedFields.fileDescriptorClass == NULL) { - return -1; + abort(); } gCachedFields.fileDescriptorCtor = env->GetMethodID(gCachedFields.fileDescriptorClass, "<init>", "()V"); if (gCachedFields.fileDescriptorCtor == NULL) { - return -1; + abort(); } gCachedFields.descriptorField = env->GetFieldID(gCachedFields.fileDescriptorClass, "descriptor", "I"); if (gCachedFields.descriptorField == NULL) { - return -1; + abort(); } - return 0; + return JNI_VERSION_1_6; } jobject jniCreateFileDescriptor(C_JNIEnv* env, int fd) { diff --git a/Register.cpp b/Register.cpp deleted file mode 100644 index b6b1b1f..0000000 --- a/Register.cpp +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (C) 2006 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include "jni.h" - -extern int registerCoreLibrariesJni(JNIEnv* env); -extern int registerJniHelp(JNIEnv* env); - -/* - * Register all methods for system classes. - */ -int jniRegisterSystemMethods(JNIEnv* env) { - // JniHelp depends on core library classes such as java.io.FileDescriptor. - return registerCoreLibrariesJni(env) != -1 && registerJniHelp(env) != -1; -} diff --git a/include/nativehelper/JNIHelp.h b/include/nativehelper/JNIHelp.h index f5666f2..446a710 100644 --- a/include/nativehelper/JNIHelp.h +++ b/include/nativehelper/JNIHelp.h @@ -37,7 +37,8 @@ extern "C" { /* * Register one or more native methods with a particular class. - * "className" looks like "java/lang/String". + * "className" looks like "java/lang/String". Aborts on failure. + * TODO: fix all callers and change the return type to void. */ int jniRegisterNativeMethods(C_JNIEnv* env, const char* className, const JNINativeMethod* gMethods, int numMethods); |