Ejemplo n.º 1
0
extern "C" jboolean 
JVM_IterateJarEntries(const JvmPathChar* jar_file_name,
                      JvmNameFilterProc entry_filter_proc,
                      JvmDoJarEntryProc do_jar_entry_proc,
                      JvmAllocProc alloc_proc, JvmFreeProc free_proc,
                      void* caller_data) {
  SETUP_ERROR_CHECKER_ARG;

  if (alloc_proc == NULL) {
    if (free_proc != NULL) {
      return KNI_FALSE;
    } else {
      alloc_proc = (JvmAllocProc)&OsMemory_allocate;
      free_proc = (JvmFreeProc)&OsMemory_free;
    }
  }

  if (free_proc == NULL) {
    return KNI_FALSE;
  }

  JarFile jf(alloc_proc, free_proc);
  jf.open(jar_file_name, false, false JVM_CHECK_0);
  if (!jf.is_open()) {
    return KNI_FALSE;
  }

  bool success = jf.filtered_do_entries(entry_filter_proc, do_jar_entry_proc,
                                        caller_data JVM_CHECK_0);

  return CAST_TO_JBOOLEAN(success);
}
Ejemplo n.º 2
0
KNIEXPORT jboolean KNI_IsAssignableFrom(jclass classHandle1,
                                        jclass classHandle2) {
  // Create handle for the first class
  JavaClassObj::Raw first_mirror = kni_read_handle(classHandle1);
  GUARANTEE(first_mirror.not_null(), "null argument to KNI_IsInstanceOf");
  JavaClass::Raw first_class = first_mirror().java_class();

  // Create handle for the second class
  JavaClassObj::Raw second_mirror = kni_read_handle(classHandle2);
  GUARANTEE(second_mirror.not_null(), "null argument to KNI_IsInstanceOf");
  JavaClass::Raw second_class = second_mirror().java_class();

  // Do subtype check
  return CAST_TO_JBOOLEAN(first_class().is_subtype_of(&second_class));
}
Ejemplo n.º 3
0
KNIEXPORT jboolean KNI_IsInstanceOf(jobject objectHandle, jclass classHandle) {
  // Create handle for objectHandle
  Oop::Raw object = kni_read_handle(objectHandle);
  if (object.is_null()) {
    return KNI_TRUE;
  }
  JavaClass::Raw object_class = object.blueprint();

  // Create handle for classHandle
  JavaClassObj::Raw mirror = kni_read_handle(classHandle);
  GUARANTEE(mirror.not_null(), "null argument to KNI_IsInstanceOf");
  JavaClass::Raw other_class = mirror().java_class();

  // Do subtype check
  return CAST_TO_JBOOLEAN(object_class().is_subtype_of(&other_class));
}
Ejemplo n.º 4
0
KNIEXPORT jboolean KNI_IsSameObject(jobject obj1, jobject obj2) {
  OopDesc* object1 = kni_read_handle(obj1);
  OopDesc* object2 = kni_read_handle(obj2);
  // Do identity check
  return CAST_TO_JBOOLEAN(object1 == object2);
}