OSDN Git Service

Remove abuse of mirror::Object* to reference special values.
authorIan Rogers <irogers@google.com>
Wed, 3 Sep 2014 23:16:56 +0000 (16:16 -0700)
committerIan Rogers <irogers@google.com>
Thu, 4 Sep 2014 00:15:54 +0000 (17:15 -0700)
commitc0542af3e2170143ba40d89136e284997e16bf64
treea61e3b9cd297a4c52a0c0488a502cb77c47f0690
parentd3c9358544bbab15093614c5c2b6a9de86e11f7b
Remove abuse of mirror::Object* to reference special values.

Remove kInvalidIndirectRefObject, kClearedJniWeakGlobal and
ObjectRegistry::kInvalidObject. Handle error conditions by passing in or
returning an error value.
GetObjectRefType is simplified to be faster and not return invalid references
that are not expected according to the spec. Adjust check JNI and
jni_internal_test appropriately.
Fix cases in the debugger/JDWP of out arguments being passed by reference.
Bug: 17376993

Change-Id: I3ce8a28c01827e163f4dc288449959464da788b1
24 files changed:
runtime/check_jni.cc
runtime/class_linker-inl.h
runtime/class_linker.h
runtime/debugger.cc
runtime/debugger.h
runtime/entrypoints/entrypoint_utils.cc
runtime/indirect_reference_table-inl.h
runtime/indirect_reference_table.cc
runtime/indirect_reference_table.h
runtime/indirect_reference_table_test.cc
runtime/java_vm_ext.cc
runtime/jdwp/jdwp.h
runtime/jdwp/jdwp_event.cc
runtime/jdwp/jdwp_handler.cc
runtime/jdwp/jdwp_main.cc
runtime/jdwp/object_registry.cc
runtime/jdwp/object_registry.h
runtime/jni_internal.cc
runtime/jni_internal_test.cc
runtime/reference_table.cc
runtime/runtime-inl.h
runtime/runtime.cc
runtime/runtime.h
runtime/thread.cc