167 args.push_long(values(i).get_jlong());
168 break;
169 case T_FLOAT:
170 args.push_float(values(i).get_jfloat());
171 break;
172 case T_DOUBLE:
173 args.push_double(values(i).get_jdouble());
174 break;
175 case T_OBJECT:
176 args.push_oop(Handle(THREAD, (oop)values(i).get_jobject()));
177 break;
178 case T_ADDRESS:
179 args.push_oop(Handle(THREAD, JNIHandles::resolve(values(i).get_jobject())));
180 break;
181 default:
182 ShouldNotReachHere();
183 }
184 }
185 }
186
187 JfrJavaArguments::JfrJavaArguments(JavaValue* result) : _result(result), _klass(NULL), _name(NULL), _signature(NULL), _array_length(0) {
188 assert(result != NULL, "invariant");
189 }
190
191 JfrJavaArguments::JfrJavaArguments(JavaValue* result, const char* klass_name, const char* name, const char* signature, TRAPS) :
192 _result(result),
193 _klass(NULL),
194 _name(NULL),
195 _signature(NULL),
196 _array_length(0) {
197 assert(result != NULL, "invariant");
198 if (klass_name != NULL) {
199 set_klass(klass_name, CHECK);
200 }
201 if (name != NULL) {
202 set_name(name, CHECK);
203 }
204 if (signature != NULL) {
205 set_signature(signature, THREAD);
206 }
207 }
208
209 JfrJavaArguments::JfrJavaArguments(JavaValue* result, const Klass* klass, const Symbol* name, const Symbol* signature) : _result(result),
210 _klass(NULL),
211 _name(NULL),
212 _signature(NULL),
213 _array_length(0) {
214 assert(result != NULL, "invariant");
215 if (klass != NULL) {
216 set_klass(klass);
217 }
218 if (name != NULL) {
219 set_name(name);
220 }
221 if (signature != NULL) {
222 set_signature(signature);
223 }
224 }
225
226 Klass* JfrJavaArguments::klass() const {
227 assert(_klass != NULL, "invariant");
228 return const_cast<Klass*>(_klass);
229 }
230
231 void JfrJavaArguments::set_klass(const char* klass_name, TRAPS) {
232 assert(klass_name != NULL, "invariant");
233 Symbol* const k_sym = resolve(klass_name, CHECK);
|
167 args.push_long(values(i).get_jlong());
168 break;
169 case T_FLOAT:
170 args.push_float(values(i).get_jfloat());
171 break;
172 case T_DOUBLE:
173 args.push_double(values(i).get_jdouble());
174 break;
175 case T_OBJECT:
176 args.push_oop(Handle(THREAD, (oop)values(i).get_jobject()));
177 break;
178 case T_ADDRESS:
179 args.push_oop(Handle(THREAD, JNIHandles::resolve(values(i).get_jobject())));
180 break;
181 default:
182 ShouldNotReachHere();
183 }
184 }
185 }
186
187 JfrJavaArguments::JfrJavaArguments(JavaValue* result) : _result(result), _klass(NULL), _name(NULL), _signature(NULL), _array_length(-1) {
188 assert(result != NULL, "invariant");
189 }
190
191 JfrJavaArguments::JfrJavaArguments(JavaValue* result, const char* klass_name, const char* name, const char* signature, TRAPS) :
192 _result(result),
193 _klass(NULL),
194 _name(NULL),
195 _signature(NULL),
196 _array_length(-1) {
197 assert(result != NULL, "invariant");
198 if (klass_name != NULL) {
199 set_klass(klass_name, CHECK);
200 }
201 if (name != NULL) {
202 set_name(name, CHECK);
203 }
204 if (signature != NULL) {
205 set_signature(signature, THREAD);
206 }
207 }
208
209 JfrJavaArguments::JfrJavaArguments(JavaValue* result, const Klass* klass, const Symbol* name, const Symbol* signature) : _result(result),
210 _klass(NULL),
211 _name(NULL),
212 _signature(NULL),
213 _array_length(-1) {
214 assert(result != NULL, "invariant");
215 if (klass != NULL) {
216 set_klass(klass);
217 }
218 if (name != NULL) {
219 set_name(name);
220 }
221 if (signature != NULL) {
222 set_signature(signature);
223 }
224 }
225
226 Klass* JfrJavaArguments::klass() const {
227 assert(_klass != NULL, "invariant");
228 return const_cast<Klass*>(_klass);
229 }
230
231 void JfrJavaArguments::set_klass(const char* klass_name, TRAPS) {
232 assert(klass_name != NULL, "invariant");
233 Symbol* const k_sym = resolve(klass_name, CHECK);
|