Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- $Id: dummy.c 8315 2007-08-15 22:49:20Z panzi $
-
*/
#include <stdio.h>
#include <stdlib.h>
+#include "mm/memory.h"
+
+#include "native/llni.h"
+
#include "toolbox/logging.h"
#include "vm/global.h"
}
+/* array **********************************************************************/
+
+java_handle_t *array_objectarray_element_get(java_handle_objectarray_t *a, int32_t index)
+{
+ java_handle_t *value;
+ int32_t size;
+
+ if (a == NULL) {
+ log_println("array_objectarray_element_get(a=%p, index=%d): NullPointerException", a, index);
+ return NULL;
+ }
+
+ size = LLNI_array_size(a);
+
+ if ((index < 0) || (index > size)) {
+ log_println("array_objectarray_element_get(a=%p, index=%d): ArrayIndexOutOfBoundsException", a, index);
+ return NULL;
+ }
+
+ LLNI_objectarray_element_get(a, index, value);
+
+ return value;
+}
+
+void array_objectarray_element_set(java_handle_objectarray_t *a, int32_t index, java_handle_t *value)
+{
+ int32_t size;
+
+ if (a == NULL) {
+ log_println("array_objectarray_element_set(a=%p, index=%d): NullPointerException", a, index);
+ return;
+ }
+
+ size = LLNI_array_size(a);
+
+ if ((index < 0) || (index > size)) {
+ log_println("array_objectarray_element_set(a=%p, index=%d): ArrayIndexOutOfBoundsException", a, index);
+ return;
+ }
+
+ LLNI_objectarray_element_set(a, index, value);
+}
+
+int32_t array_length_get(java_handle_t *a)
+{
+ if (a == NULL) {
+ log_println("array_length_get(a=%p): NullPointerException", a);
+ return 0;
+ }
+
+ return LLNI_array_size(a);
+}
+
+
/* asm ************************************************************************/
void asm_abstractmethoderror(void)
return NULL;
}
-java_objectarray *builtin_anewarray(int32_t size, classinfo *componentclass)
+java_handle_objectarray_t *builtin_anewarray(int32_t size, classinfo *componentclass)
{
- abort();
+ java_objectarray_t *oa = (java_objectarray_t*) mem_alloc(
+ sizeof(java_array_t) + size * sizeof(java_object_t*));
+ java_handle_objectarray_t *h = (java_handle_objectarray_t*) LLNI_WRAP(
+ (java_object_t*) oa);
- return NULL;
+ if (h != NULL) {
+ LLNI_array_size(h) = size;
+ }
+
+ return h;
}
-java_bytearray *builtin_newarray_byte(int32_t size)
+java_handle_bytearray_t *builtin_newarray_byte(int32_t size)
{
- abort();
+ java_bytearray_t *ba = (java_bytearray_t*) mem_alloc(
+ sizeof(java_array_t) + size * sizeof(int8_t));
+ java_handle_bytearray_t *h = (java_handle_bytearray_t*) LLNI_WRAP(
+ (java_object_t*) ba);
- return NULL;
+ if (h != NULL) {
+ LLNI_array_size(h) = size;
+ }
+
+ return h;
}
/* gc *************************************************************************/
+void gc_reference_register(java_object_t **ref, int32_t reftype)
+{
+ vm_abort("gc_reference_register");
+}
+
int64_t gc_get_heap_size(void)
{
return 0;
return calloc(bytelength, 1);
}
+s4 heap_get_hashcode(java_object_t *o)
+{
+ return 0;
+}
+
/* jit ************************************************************************/
}
+/* llni ***********************************************************************/
+
+void llni_critical_start()
+{
+ vm_abort("llni_critical_start");
+}
+
+void llni_critical_end()
+{
+ vm_abort("llni_critical_end");
+}
+
+
+/* localref *******************************************************************/
+
+java_handle_t *localref_add(java_object_t *o)
+{
+#if defined(ENABLE_HANDLES)
+ java_handle_t *h = (java_handle_t*) mem_alloc(sizeof(java_handle_t));
+
+ h->heap_object = o;
+
+ return h;
+#else
+ return (java_handle_t*) o;
+#endif
+}
+
+
/* lock ***********************************************************************/
void lock_init_object_lock(java_object_t *o)
/* primitive ******************************************************************/
+classinfo *primitive_arrayclass_get_by_type(int type)
+{
+ return NULL;
+}
+
classinfo *primitive_class_get_by_type(int type)
{
abort();
/* stacktrace *****************************************************************/
-java_objectarray *stacktrace_getClassContext()
+java_handle_objectarray_t *stacktrace_getClassContext()
{
return NULL;
}