< prev index next >

src/java.base/share/native/libjimage/ImageNativeSubstrate.cpp

Print this page
rev 12879 : 8136556: Add the ability to perform static builds of MacOSX x64 binaries
Reviewed-by: ihse, bdelsart, gadams, lfoltan, rriggs, hseigel, twisti


 219     // Copy values to result (converting endian.)
 220     for (u4 i = 0; i < length; i++) {
 221         rawOffsets[i] = endian->get(offsets_table[i]);
 222     }
 223     return rawOffsets;
 224 }
 225 
 226 // Java entry for retrieving all the attribute stream offsets length from an image.
 227 
 228 static unsigned int JIMAGE_AttributeOffsetsLength(JNIEnv *env, jlong id) {
 229     // Convert image ID to image reader structure.
 230     ImageFileReader* reader = ImageFileReader::idToReader(id);
 231     // Fail if not valid reader.
 232     if (reader == NULL) return 0;
 233     // Get perfect hash table length.
 234     u4 length = reader->table_length();
 235     return (jint) length;
 236 }
 237 
 238 JNIEXPORT jint JNICALL
 239 JNI_OnLoad(JavaVM *vm, void *reserved) {
 240     JNIEnv *env;
 241 
 242     if (vm->GetEnv((void**) &env, JNI_VERSION_1_2) != JNI_OK) {
 243         return JNI_EVERSION; /* JNI version not supported */
 244     }
 245 
 246     return JNI_VERSION_1_2;
 247 }
 248 
 249 JNIEXPORT jlong JNICALL
 250 Java_jdk_internal_jimage_ImageNativeSubstrate_openImage(JNIEnv *env,
 251         jclass cls, jstring path, jboolean big_endian) {
 252     const char *nativePath;
 253     jlong ret;
 254 
 255     nativePath = env->GetStringUTFChars(path, NULL);
 256     ret = JIMAGE_Open(env, nativePath, big_endian);
 257     env->ReleaseStringUTFChars(path, nativePath);
 258     return ret;
 259 }


 577  * Method:    JIMAGE_PackageToModule
 578  * Signature: (JLjava/lang/String;)Ljava/lang/String;
 579  */
 580 JNIEXPORT jstring JNICALL Java_jdk_internal_jimage_ImageNativeSubstrate_JIMAGE_1PackageToModule
 581 (JNIEnv *env, jclass, jlong jimageHandle, jstring package_name) {
 582     const char *native_package = NULL;
 583     const char *native_module = NULL;
 584     jstring module = NULL;
 585 
 586     native_package = env->GetStringUTFChars(package_name, NULL);
 587     JNU_CHECK_EXCEPTION_RETURN(env, NULL);
 588 
 589     native_module = JIMAGE_PackageToModule((JImageFile*) jimageHandle, native_package);
 590     if (native_module != NULL) {
 591         module = env->NewStringUTF(native_module);
 592     }
 593     env->ReleaseStringUTFChars(package_name, native_package);
 594     return module;
 595 }
 596 
 597 JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *vm, void *reserved) {
 598     ImageDecompressor::image_decompressor_close();
 599 }


 219     // Copy values to result (converting endian.)
 220     for (u4 i = 0; i < length; i++) {
 221         rawOffsets[i] = endian->get(offsets_table[i]);
 222     }
 223     return rawOffsets;
 224 }
 225 
 226 // Java entry for retrieving all the attribute stream offsets length from an image.
 227 
 228 static unsigned int JIMAGE_AttributeOffsetsLength(JNIEnv *env, jlong id) {
 229     // Convert image ID to image reader structure.
 230     ImageFileReader* reader = ImageFileReader::idToReader(id);
 231     // Fail if not valid reader.
 232     if (reader == NULL) return 0;
 233     // Get perfect hash table length.
 234     u4 length = reader->table_length();
 235     return (jint) length;
 236 }
 237 
 238 JNIEXPORT jint JNICALL
 239 DEF_JNI_OnLoad(JavaVM *vm, void *reserved) {
 240     JNIEnv *env;
 241 
 242     if (vm->GetEnv((void**) &env, JNI_VERSION_1_2) != JNI_OK) {
 243         return JNI_EVERSION; /* JNI version not supported */
 244     }
 245 
 246     return JNI_VERSION_1_2;
 247 }
 248 
 249 JNIEXPORT jlong JNICALL
 250 Java_jdk_internal_jimage_ImageNativeSubstrate_openImage(JNIEnv *env,
 251         jclass cls, jstring path, jboolean big_endian) {
 252     const char *nativePath;
 253     jlong ret;
 254 
 255     nativePath = env->GetStringUTFChars(path, NULL);
 256     ret = JIMAGE_Open(env, nativePath, big_endian);
 257     env->ReleaseStringUTFChars(path, nativePath);
 258     return ret;
 259 }


 577  * Method:    JIMAGE_PackageToModule
 578  * Signature: (JLjava/lang/String;)Ljava/lang/String;
 579  */
 580 JNIEXPORT jstring JNICALL Java_jdk_internal_jimage_ImageNativeSubstrate_JIMAGE_1PackageToModule
 581 (JNIEnv *env, jclass, jlong jimageHandle, jstring package_name) {
 582     const char *native_package = NULL;
 583     const char *native_module = NULL;
 584     jstring module = NULL;
 585 
 586     native_package = env->GetStringUTFChars(package_name, NULL);
 587     JNU_CHECK_EXCEPTION_RETURN(env, NULL);
 588 
 589     native_module = JIMAGE_PackageToModule((JImageFile*) jimageHandle, native_package);
 590     if (native_module != NULL) {
 591         module = env->NewStringUTF(native_module);
 592     }
 593     env->ReleaseStringUTFChars(package_name, native_package);
 594     return module;
 595 }
 596 
 597 JNIEXPORT void JNICALL DEF_JNI_OnUnload(JavaVM *vm, void *reserved) {
 598     ImageDecompressor::image_decompressor_close();
 599 }
< prev index next >