diff options
-rw-r--r-- | runtime/common_throws.cc | 6 | ||||
-rw-r--r-- | runtime/well_known_classes.cc | 9 | ||||
-rw-r--r-- | runtime/well_known_classes.h | 3 |
3 files changed, 11 insertions, 7 deletions
diff --git a/runtime/common_throws.cc b/runtime/common_throws.cc index 2ffadb3ca2..657a78bd2f 100644 --- a/runtime/common_throws.cc +++ b/runtime/common_throws.cc @@ -787,7 +787,7 @@ void ThrowStackOverflowError(Thread* self) { // Object stackState; // StackTraceElement[] stackTrace; // Only Throwable has a non-empty constructor: - // this.stackTrace = Throwable.UNASSIGNED_STACK; + // this.stackTrace = EmptyArray.STACK_TRACE_ELEMENT; // fillInStackTrace(); // detailMessage. @@ -822,8 +822,8 @@ void ThrowStackOverflowError(Thread* self) { // stackTrace. ScopedLocalRef<jobject> stack_trace_elem(env, env->GetStaticObjectField( - WellKnownClasses::java_lang_Throwable, - WellKnownClasses::java_lang_Throwable_UNASSIGNED_STACK)); + WellKnownClasses::libcore_util_EmptyArray, + WellKnownClasses::libcore_util_EmptyArray_STACK_TRACE_ELEMENT)); env->SetObjectField(exc.get(), WellKnownClasses::java_lang_Throwable_stackTrace, stack_trace_elem.get()); diff --git a/runtime/well_known_classes.cc b/runtime/well_known_classes.cc index 7b54b2fabc..c64e7bbca1 100644 --- a/runtime/well_known_classes.cc +++ b/runtime/well_known_classes.cc @@ -76,6 +76,7 @@ jclass WellKnownClasses::java_util_Collections; jclass WellKnownClasses::java_util_function_Consumer; jclass WellKnownClasses::libcore_reflect_AnnotationFactory; jclass WellKnownClasses::libcore_reflect_AnnotationMember; +jclass WellKnownClasses::libcore_util_EmptyArray; jclass WellKnownClasses::org_apache_harmony_dalvik_ddmc_Chunk; jclass WellKnownClasses::org_apache_harmony_dalvik_ddmc_DdmServer; @@ -136,7 +137,6 @@ jfieldID WellKnownClasses::java_lang_Throwable_detailMessage; jfieldID WellKnownClasses::java_lang_Throwable_stackTrace; jfieldID WellKnownClasses::java_lang_Throwable_stackState; jfieldID WellKnownClasses::java_lang_Throwable_suppressedExceptions; -jfieldID WellKnownClasses::java_lang_Throwable_UNASSIGNED_STACK; jfieldID WellKnownClasses::java_nio_ByteBuffer_address; jfieldID WellKnownClasses::java_nio_ByteBuffer_hb; jfieldID WellKnownClasses::java_nio_ByteBuffer_isReadOnly; @@ -145,6 +145,7 @@ jfieldID WellKnownClasses::java_nio_ByteBuffer_offset; jfieldID WellKnownClasses::java_nio_DirectByteBuffer_capacity; jfieldID WellKnownClasses::java_nio_DirectByteBuffer_effectiveDirectAddress; jfieldID WellKnownClasses::java_util_Collections_EMPTY_LIST; +jfieldID WellKnownClasses::libcore_util_EmptyArray_STACK_TRACE_ELEMENT; jfieldID WellKnownClasses::org_apache_harmony_dalvik_ddmc_Chunk_data; jfieldID WellKnownClasses::org_apache_harmony_dalvik_ddmc_Chunk_length; jfieldID WellKnownClasses::org_apache_harmony_dalvik_ddmc_Chunk_offset; @@ -330,6 +331,7 @@ void WellKnownClasses::Init(JNIEnv* env) { java_util_function_Consumer = CacheClass(env, "java/util/function/Consumer"); libcore_reflect_AnnotationFactory = CacheClass(env, "libcore/reflect/AnnotationFactory"); libcore_reflect_AnnotationMember = CacheClass(env, "libcore/reflect/AnnotationMember"); + libcore_util_EmptyArray = CacheClass(env, "libcore/util/EmptyArray"); org_apache_harmony_dalvik_ddmc_Chunk = CacheClass(env, "org/apache/harmony/dalvik/ddmc/Chunk"); org_apache_harmony_dalvik_ddmc_DdmServer = CacheClass(env, "org/apache/harmony/dalvik/ddmc/DdmServer"); @@ -383,7 +385,6 @@ void WellKnownClasses::Init(JNIEnv* env) { java_lang_Throwable_stackTrace = CacheField(env, java_lang_Throwable, false, "stackTrace", "[Ljava/lang/StackTraceElement;"); java_lang_Throwable_stackState = CacheField(env, java_lang_Throwable, false, "backtrace", "Ljava/lang/Object;"); java_lang_Throwable_suppressedExceptions = CacheField(env, java_lang_Throwable, false, "suppressedExceptions", "Ljava/util/List;"); - java_lang_Throwable_UNASSIGNED_STACK = CacheField(env, java_lang_Throwable, true, "UNASSIGNED_STACK", "[Ljava/lang/StackTraceElement;"); java_nio_ByteBuffer_address = CacheField(env, java_nio_ByteBuffer, false, "address", "J"); java_nio_ByteBuffer_hb = CacheField(env, java_nio_ByteBuffer, false, "hb", "[B"); java_nio_ByteBuffer_isReadOnly = CacheField(env, java_nio_ByteBuffer, false, "isReadOnly", "Z"); @@ -392,6 +393,7 @@ void WellKnownClasses::Init(JNIEnv* env) { java_nio_DirectByteBuffer_capacity = CacheField(env, java_nio_DirectByteBuffer, false, "capacity", "I"); java_nio_DirectByteBuffer_effectiveDirectAddress = CacheField(env, java_nio_DirectByteBuffer, false, "address", "J"); java_util_Collections_EMPTY_LIST = CacheField(env, java_util_Collections, true, "EMPTY_LIST", "Ljava/util/List;"); + libcore_util_EmptyArray_STACK_TRACE_ELEMENT = CacheField(env, libcore_util_EmptyArray, true, "STACK_TRACE_ELEMENT", "[Ljava/lang/StackTraceElement;"); org_apache_harmony_dalvik_ddmc_Chunk_data = CacheField(env, org_apache_harmony_dalvik_ddmc_Chunk, false, "data", "[B"); org_apache_harmony_dalvik_ddmc_Chunk_length = CacheField(env, org_apache_harmony_dalvik_ddmc_Chunk, false, "length", "I"); org_apache_harmony_dalvik_ddmc_Chunk_offset = CacheField(env, org_apache_harmony_dalvik_ddmc_Chunk, false, "offset", "I"); @@ -460,6 +462,7 @@ void WellKnownClasses::Clear() { java_nio_DirectByteBuffer = nullptr; libcore_reflect_AnnotationFactory = nullptr; libcore_reflect_AnnotationMember = nullptr; + libcore_util_EmptyArray = nullptr; org_apache_harmony_dalvik_ddmc_Chunk = nullptr; org_apache_harmony_dalvik_ddmc_DdmServer = nullptr; @@ -519,7 +522,6 @@ void WellKnownClasses::Clear() { java_lang_Throwable_stackTrace = nullptr; java_lang_Throwable_stackState = nullptr; java_lang_Throwable_suppressedExceptions = nullptr; - java_lang_Throwable_UNASSIGNED_STACK = nullptr; java_nio_ByteBuffer_address = nullptr; java_nio_ByteBuffer_hb = nullptr; java_nio_ByteBuffer_isReadOnly = nullptr; @@ -528,6 +530,7 @@ void WellKnownClasses::Clear() { java_nio_DirectByteBuffer_capacity = nullptr; java_nio_DirectByteBuffer_effectiveDirectAddress = nullptr; java_util_Collections_EMPTY_LIST = nullptr; + libcore_util_EmptyArray_STACK_TRACE_ELEMENT = nullptr; org_apache_harmony_dalvik_ddmc_Chunk_data = nullptr; org_apache_harmony_dalvik_ddmc_Chunk_length = nullptr; org_apache_harmony_dalvik_ddmc_Chunk_offset = nullptr; diff --git a/runtime/well_known_classes.h b/runtime/well_known_classes.h index bed8770c45..c81062f594 100644 --- a/runtime/well_known_classes.h +++ b/runtime/well_known_classes.h @@ -86,6 +86,7 @@ struct WellKnownClasses { static jclass java_nio_DirectByteBuffer; static jclass libcore_reflect_AnnotationFactory; static jclass libcore_reflect_AnnotationMember; + static jclass libcore_util_EmptyArray; static jclass org_apache_harmony_dalvik_ddmc_Chunk; static jclass org_apache_harmony_dalvik_ddmc_DdmServer; @@ -146,7 +147,6 @@ struct WellKnownClasses { static jfieldID java_lang_Throwable_stackTrace; static jfieldID java_lang_Throwable_stackState; static jfieldID java_lang_Throwable_suppressedExceptions; - static jfieldID java_lang_Throwable_UNASSIGNED_STACK; static jfieldID java_nio_ByteBuffer_address; static jfieldID java_nio_ByteBuffer_hb; static jfieldID java_nio_ByteBuffer_isReadOnly; @@ -156,6 +156,7 @@ struct WellKnownClasses { static jfieldID java_nio_DirectByteBuffer_effectiveDirectAddress; static jfieldID java_util_Collections_EMPTY_LIST; + static jfieldID libcore_util_EmptyArray_STACK_TRACE_ELEMENT; static jfieldID org_apache_harmony_dalvik_ddmc_Chunk_data; static jfieldID org_apache_harmony_dalvik_ddmc_Chunk_length; static jfieldID org_apache_harmony_dalvik_ddmc_Chunk_offset; |