コード例 #1
0
ファイル: kni.cpp プロジェクト: hbao/phonemefeaturedevices
KNIEXPORT void
KNI_SetObjectField(jobject objectHandle, jfieldID fieldID, jobject fromHandle)
{
  OopDesc* object = kni_read_handle(objectHandle);
  GUARANTEE(object != 0, "null argument to KNI_SetObjectField");
  oop_write_barrier(object->obj_field_addr((int)fieldID),
                    kni_read_handle(fromHandle));
}
コード例 #2
0
ファイル: kni.cpp プロジェクト: hbao/phonemefeaturedevices
//
// Object operations
//
KNIEXPORT void KNI_GetObjectClass(jobject objectHandle, jclass classHandle) {
  OopDesc* object = kni_read_handle(objectHandle);
  SETUP_ERROR_CHECKER_ARG;

  if (object == 0) {
    kni_clear_handle(classHandle);
  } else {
    UsingFastOops fast_oops;
    JavaClass::Fast blueprint = (OopDesc*)object->blueprint();
    JavaClassObj::Fast m = blueprint().get_or_allocate_java_mirror(JVM_SINGLE_ARG_NO_CHECK);
    kni_set_handle(classHandle, m.obj());
  }
}
コード例 #3
0
ファイル: ROM.cpp プロジェクト: sfsy1989/j2me
void ROM::relocate_heap_block() {
  OopDesc* q = (OopDesc*)_romized_heap_top;
  int offset = _heap_relocation_offset;

  while (q < (OopDesc*)_inline_allocation_top) { 
    relocate_pointer_to_heap((OopDesc**)q);
    FarClassDesc* blueprint = q->blueprint();
    if (heap_src_block_contains((address)blueprint)) { 
      blueprint = DERIVED(FarClassDesc*, blueprint, offset);
    }
    q->oops_do_for(blueprint, relocate_pointer_to_heap);
    q = DERIVED(OopDesc*, q, q->object_size_for(blueprint));
  }
コード例 #4
0
ファイル: kni.cpp プロジェクト: hbao/phonemefeaturedevices
KNIEXPORT jint KNI_GetIntField(jobject objectHandle, jfieldID fieldID) {
  OopDesc* object = kni_read_handle(objectHandle);
  GUARANTEE(object != 0, "null argument to KNI_GetIntField");
  return *object->int_field_addr((int)fieldID);
}
コード例 #5
0
ファイル: kni.cpp プロジェクト: hbao/phonemefeaturedevices
KNIEXPORT void
KNI_GetObjectField(jobject objectHandle, jfieldID fieldID, jobject toHandle) {
  OopDesc* object = kni_read_handle(objectHandle);
  GUARANTEE(object != 0, "null argument to KNI_GetObjectField");
  kni_set_handle(toHandle, *object->obj_field_addr((int)fieldID));
}