comparison src/share/vm/utilities/exceptions.hpp @ 6271:93c71eb28866

7188911: nightly failures after JSR 292 lazy method handle update (round 2) Reviewed-by: kvn, jrose
author twisti
date Tue, 07 Aug 2012 14:32:08 -0700
parents 1d7922586cf6
children da91efe96a93
comparison
equal deleted inserted replaced
6270:b72784e722ff 6271:93c71eb28866
110 unsafe_to_utf8 = 1 110 unsafe_to_utf8 = 1
111 } ExceptionMsgToUtf8Mode; 111 } ExceptionMsgToUtf8Mode;
112 // Throw exceptions: w/o message, w/ message & with formatted message. 112 // Throw exceptions: w/o message, w/ message & with formatted message.
113 static void _throw_oop(Thread* thread, const char* file, int line, oop exception); 113 static void _throw_oop(Thread* thread, const char* file, int line, oop exception);
114 static void _throw(Thread* thread, const char* file, int line, Handle exception, const char* msg = NULL); 114 static void _throw(Thread* thread, const char* file, int line, Handle exception, const char* msg = NULL);
115 static void _throw_msg(Thread* thread, const char* file, int line, 115
116 Symbol* name, const char* message, Handle loader, 116 static void _throw_msg(Thread* thread, const char* file, int line, Symbol* name, const char* message);
117 Handle protection_domain); 117 static void _throw_msg(Thread* thread, const char* file, int line, Symbol* name, const char* message,
118 static void _throw_msg(Thread* thread, const char* file, int line, 118 Handle loader, Handle protection_domain);
119 Symbol* name, const char* message); 119
120 static void _throw_msg_cause(Thread* thread, const char* file, int line, Symbol* name, const char* message, Handle h_cause);
121 static void _throw_msg_cause(Thread* thread, const char* file, int line, Symbol* name, const char* message, Handle h_cause,
122 Handle h_loader, Handle h_protection_domain);
123
124 static void _throw_cause(Thread* thread, const char* file, int line, Symbol* name, Handle h_cause);
125 static void _throw_cause(Thread* thread, const char* file, int line, Symbol* name, Handle h_cause,
126 Handle h_loader, Handle h_protection_domain);
127
120 static void _throw_args(Thread* thread, const char* file, int line, 128 static void _throw_args(Thread* thread, const char* file, int line,
121 Symbol* name, Symbol* signature, 129 Symbol* name, Symbol* signature,
122 JavaCallArguments* args); 130 JavaCallArguments* args);
123 static void _throw_msg_cause(Thread* thread, const char* file,
124 int line, Symbol* h_name, const char* message,
125 Handle h_cause, Handle h_loader, Handle h_protection_domain);
126 static void _throw_msg_cause(Thread* thread, const char* file, int line,
127 Symbol* name, const char* message, Handle cause);
128 131
129 // There is no THROW... macro for this method. Caller should remember 132 // There is no THROW... macro for this method. Caller should remember
130 // to do a return after calling it. 133 // to do a return after calling it.
131 static void fthrow(Thread* thread, const char* file, int line, Symbol* name, 134 static void fthrow(Thread* thread, const char* file, int line, Symbol* name,
132 const char* format, ...); 135 const char* format, ...);
133 136
134 // Create and initialize a new exception 137 // Create and initialize a new exception
135 static Handle new_exception(Thread* thread, Symbol* name, 138 static Handle new_exception(Thread* thread, Symbol* name,
136 Symbol* signature, JavaCallArguments* args, 139 Symbol* signature, JavaCallArguments* args,
137 Handle cause, Handle loader, 140 Handle loader, Handle protection_domain);
138 Handle protection_domain); 141
139 142 static Handle new_exception(Thread* thread, Symbol* name,
140 static Handle new_exception(Thread* thread, Symbol* name, 143 Symbol* signature, JavaCallArguments* args,
141 const char* message, Handle cause, Handle loader, 144 Handle cause,
142 Handle protection_domain, 145 Handle loader, Handle protection_domain);
146
147 static Handle new_exception(Thread* thread, Symbol* name,
148 Handle cause,
149 Handle loader, Handle protection_domain,
143 ExceptionMsgToUtf8Mode to_utf8_safe = safe_to_utf8); 150 ExceptionMsgToUtf8Mode to_utf8_safe = safe_to_utf8);
144 151
145 static Handle new_exception(Thread* thread, Symbol* name, 152 static Handle new_exception(Thread* thread, Symbol* name,
146 const char* message, 153 const char* message, Handle cause,
147 ExceptionMsgToUtf8Mode to_utf8_safe = safe_to_utf8); 154 Handle loader, Handle protection_domain,
155 ExceptionMsgToUtf8Mode to_utf8_safe = safe_to_utf8);
156
157 static Handle new_exception(Thread* thread, Symbol* name,
158 const char* message,
159 ExceptionMsgToUtf8Mode to_utf8_safe = safe_to_utf8);
148 160
149 static void throw_stack_overflow_exception(Thread* thread, const char* file, int line, methodHandle method); 161 static void throw_stack_overflow_exception(Thread* thread, const char* file, int line, methodHandle method);
150 162
151 // for AbortVMOnException flag 163 // for AbortVMOnException flag
152 NOT_PRODUCT(static void debug_check_abort(Handle exception, const char* message = NULL);) 164 NOT_PRODUCT(static void debug_check_abort(Handle exception, const char* message = NULL);)
212 { Exceptions::_throw_msg(THREAD_AND_LOCATION, name, NULL); return; } 224 { Exceptions::_throw_msg(THREAD_AND_LOCATION, name, NULL); return; }
213 225
214 #define THROW_MSG(name, message) \ 226 #define THROW_MSG(name, message) \
215 { Exceptions::_throw_msg(THREAD_AND_LOCATION, name, message); return; } 227 { Exceptions::_throw_msg(THREAD_AND_LOCATION, name, message); return; }
216 228
229 #define THROW_CAUSE(name, cause) \
230 { Exceptions::_throw_cause(THREAD_AND_LOCATION, name, cause); return; }
231
217 #define THROW_MSG_LOADER(name, message, loader, protection_domain) \ 232 #define THROW_MSG_LOADER(name, message, loader, protection_domain) \
218 { Exceptions::_throw_msg(THREAD_AND_LOCATION, name, message, loader, protection_domain); return; } 233 { Exceptions::_throw_msg(THREAD_AND_LOCATION, name, message, loader, protection_domain); return; }
219 234
220 #define THROW_ARG(name, signature, args) \ 235 #define THROW_ARG(name, signature, args) \
221 { Exceptions::_throw_args(THREAD_AND_LOCATION, name, signature, args); return; } 236 { Exceptions::_throw_args(THREAD_AND_LOCATION, name, signature, args); return; }
222
223 #define THROW_MSG_CAUSE(name, message, cause) \
224 { Exceptions::_throw_msg_cause(THREAD_AND_LOCATION, name, message, cause); return; }
225 237
226 #define THROW_OOP_(e, result) \ 238 #define THROW_OOP_(e, result) \
227 { Exceptions::_throw_oop(THREAD_AND_LOCATION, e); return result; } 239 { Exceptions::_throw_oop(THREAD_AND_LOCATION, e); return result; }
228 240
229 #define THROW_HANDLE_(e, result) \ 241 #define THROW_HANDLE_(e, result) \