119
120 JRT_ENTRY(void, SharkRuntime::anewarray(JavaThread* thread,
121 int index,
122 int size))
123 Klass* klass = method(thread)->constants()->klass_at(index, CHECK);
124 objArrayOop obj = oopFactory::new_objArray(klass, size, CHECK);
125 thread->set_vm_result(obj);
126 JRT_END
127
128 JRT_ENTRY(void, SharkRuntime::multianewarray(JavaThread* thread,
129 int index,
130 int ndims,
131 int* dims))
132 Klass* klass = method(thread)->constants()->klass_at(index, CHECK);
133 oop obj = ArrayKlass::cast(klass)->multi_allocate(ndims, dims, CHECK);
134 thread->set_vm_result(obj);
135 JRT_END
136
137 JRT_ENTRY(void, SharkRuntime::register_finalizer(JavaThread* thread,
138 oop object))
139 assert(object->is_oop(), "should be");
140 assert(object->klass()->has_finalizer(), "should have");
141 InstanceKlass::register_finalizer(instanceOop(object), CHECK);
142 JRT_END
143
144 JRT_ENTRY(void, SharkRuntime::throw_ArithmeticException(JavaThread* thread,
145 const char* file,
146 int line))
147 Exceptions::_throw_msg(
148 thread, file, line,
149 vmSymbols::java_lang_ArithmeticException(),
150 "");
151 JRT_END
152
153 JRT_ENTRY(void, SharkRuntime::throw_ArrayIndexOutOfBoundsException(
154 JavaThread* thread,
155 const char* file,
156 int line,
157 int index))
158 char msg[jintAsStringSize];
159 snprintf(msg, sizeof(msg), "%d", index);
|
119
120 JRT_ENTRY(void, SharkRuntime::anewarray(JavaThread* thread,
121 int index,
122 int size))
123 Klass* klass = method(thread)->constants()->klass_at(index, CHECK);
124 objArrayOop obj = oopFactory::new_objArray(klass, size, CHECK);
125 thread->set_vm_result(obj);
126 JRT_END
127
128 JRT_ENTRY(void, SharkRuntime::multianewarray(JavaThread* thread,
129 int index,
130 int ndims,
131 int* dims))
132 Klass* klass = method(thread)->constants()->klass_at(index, CHECK);
133 oop obj = ArrayKlass::cast(klass)->multi_allocate(ndims, dims, CHECK);
134 thread->set_vm_result(obj);
135 JRT_END
136
137 JRT_ENTRY(void, SharkRuntime::register_finalizer(JavaThread* thread,
138 oop object))
139 assert(oopDesc::is_oop(object), "should be");
140 assert(object->klass()->has_finalizer(), "should have");
141 InstanceKlass::register_finalizer(instanceOop(object), CHECK);
142 JRT_END
143
144 JRT_ENTRY(void, SharkRuntime::throw_ArithmeticException(JavaThread* thread,
145 const char* file,
146 int line))
147 Exceptions::_throw_msg(
148 thread, file, line,
149 vmSymbols::java_lang_ArithmeticException(),
150 "");
151 JRT_END
152
153 JRT_ENTRY(void, SharkRuntime::throw_ArrayIndexOutOfBoundsException(
154 JavaThread* thread,
155 const char* file,
156 int line,
157 int index))
158 char msg[jintAsStringSize];
159 snprintf(msg, sizeof(msg), "%d", index);
|