# HG changeset patch # User Roland Schatz # Date 1461934170 -7200 # Node ID 041534002323fb23bb33aee645fd09f00f979653 # Parent 45168ac6d3bc4fe0df5d22b8e6c96508b18c84a7 Use strings instead of Symbol* for exception names (JDK-8155735). diff -r 45168ac6d3bc -r 041534002323 src/share/vm/jvmci/jvmciRuntime.cpp --- a/src/share/vm/jvmci/jvmciRuntime.cpp Fri Apr 29 11:10:18 2016 +0200 +++ b/src/share/vm/jvmci/jvmciRuntime.cpp Fri Apr 29 14:49:30 2016 +0200 @@ -411,19 +411,22 @@ } JRT_END -JRT_ENTRY(void, JVMCIRuntime::throw_and_post_jvmti_exception(JavaThread* thread, Symbol* name, const char* message)) - SharedRuntime::throw_and_post_jvmti_exception(thread, name, message); +JRT_ENTRY(void, JVMCIRuntime::throw_and_post_jvmti_exception(JavaThread* thread, const char* exception, const char* message)) + Symbol* symbol = SymbolTable::lookup(exception, strlen(exception), thread); + SharedRuntime::throw_and_post_jvmti_exception(thread, symbol, message); JRT_END -JRT_ENTRY(void, JVMCIRuntime::throw_klass_external_name_exception(JavaThread* thread, Symbol* exception, Klass* klass)) +JRT_ENTRY(void, JVMCIRuntime::throw_klass_external_name_exception(JavaThread* thread, const char* exception, Klass* klass)) ResourceMark rm(thread); - SharedRuntime::throw_and_post_jvmti_exception(thread, exception, klass->external_name()); + Symbol* symbol = SymbolTable::lookup(exception, strlen(exception), thread); + SharedRuntime::throw_and_post_jvmti_exception(thread, symbol, klass->external_name()); JRT_END -JRT_ENTRY(void, JVMCIRuntime::throw_class_cast_exception(JavaThread* thread, Symbol* exception, Klass* caster_klass, Klass* target_klass)) +JRT_ENTRY(void, JVMCIRuntime::throw_class_cast_exception(JavaThread* thread, const char* exception, Klass* caster_klass, Klass* target_klass)) ResourceMark rm(thread); const char* message = SharedRuntime::generate_class_cast_message(caster_klass->external_name(), target_klass->external_name()); - SharedRuntime::throw_and_post_jvmti_exception(thread, exception, message); + Symbol* symbol = SymbolTable::lookup(exception, strlen(exception), thread); + SharedRuntime::throw_and_post_jvmti_exception(thread, symbol, message); JRT_END JRT_LEAF(void, JVMCIRuntime::log_object(JavaThread* thread, oopDesc* obj, bool as_string, bool newline)) diff -r 45168ac6d3bc -r 041534002323 src/share/vm/jvmci/jvmciRuntime.hpp --- a/src/share/vm/jvmci/jvmciRuntime.hpp Fri Apr 29 11:10:18 2016 +0200 +++ b/src/share/vm/jvmci/jvmciRuntime.hpp Fri Apr 29 14:49:30 2016 +0200 @@ -218,10 +218,10 @@ static void new_store_pre_barrier(JavaThread* thread); // used to throw exceptions from compiled JVMCI code - static void throw_and_post_jvmti_exception(JavaThread* thread, Symbol* exception, const char* message); + static void throw_and_post_jvmti_exception(JavaThread* thread, const char* exception, const char* message); // helper methods to throw exception with complex messages - static void throw_klass_external_name_exception(JavaThread* thread, Symbol* exception, Klass* klass); - static void throw_class_cast_exception(JavaThread* thread, Symbol* exception, Klass* caster_klass, Klass* target_klass); + static void throw_klass_external_name_exception(JavaThread* thread, const char* exception, Klass* klass); + static void throw_class_cast_exception(JavaThread* thread, const char* exception, Klass* caster_klass, Klass* target_klass); // Test only function static int test_deoptimize_call_int(JavaThread* thread, int value);