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 }
|