134 printf(
"Array::Array(): WARNING, passed handle is not an array\n");
163 int32_t actualsize = dataoffset + size * componentsize;
167 if (((
u4) actualsize) < ((
u4) size)) {
192 printf(
"Array::get_length(): WARNING, got null-pointer\n");
233 void get_region(int32_t offset, int32_t count, T* buffer);
234 void set_region(int32_t offset, int32_t count,
const T* buffer);
245 if ((index < 0) || (index >= get_length())) {
250 T* ptr = get_raw_data_ptr();
262 if ((index < 0) || (index >= get_length())) {
267 T* ptr = get_raw_data_ptr();
303 const T* ptr = get_raw_data_ptr();
305 os::memcpy(buffer, ptr + offset,
sizeof(T) * count);
313 T* ptr = get_raw_data_ptr();
315 os::memcpy(ptr + offset, buffer,
sizeof(T) * count);
void exceptions_throw_illegalargumentexception(void)
CharArray(java_handle_chararray_t *h)
ByteArray(java_handle_bytearray_t *h)
BooleanArray(java_handle_booleanarray_t *h)
ShortArray(int32_t length)
uint16_t * get_raw_data_ptr()
float * get_raw_data_ptr()
LongArray(java_handle_longarray_t *h)
ShortArray(java_handle_shortarray_t *h)
virtual java_handle_array_t * get_handle() const
int8_t * get_raw_data_ptr()
This is a template of an accessor class for Java arrays of a specific type.
FloatArray(int32_t length)
Actual implementation of access class for Java Object arrays.
int32_t * get_raw_data_ptr()
T get_element(int32_t index)
int16_t * get_raw_data_ptr()
DoubleArray(int32_t length)
Actual implementations of common Java array access classes.
double * get_raw_data_ptr()
static bool class_is_array(classinfo *c)
ArrayTemplate(java_handle_array_t *h)
void set_element(int32_t index, T value)
void get_region(int32_t offset, int32_t count, T *buffer)
JNIEnv jthread jobject jclass jlong size
ArrayTemplate(int32_t length, classinfo *arrayclass)
void set_primitive_element(int32_t index, imm_union value)
Sets a primitive element in the given Java array.
ByteArray(int32_t length)
void * heap_alloc(u4 size, u4 references, methodinfo *finalizer, bool collect)
int64_t * get_raw_data_ptr()
#define LLNI_class_get(obj, variable)
CharArray(int32_t length)
Critical section for the GC.
DoubleArray(java_handle_doublearray_t *h)
int32_t get_length() const
LongArray(int32_t length)
void exceptions_throw_nullpointerexception(void)
ObjectArray(java_handle_objectarray_t *h)
classinfo ** get_raw_data_ptr()
static void * memcpy(void *dest, const void *src, size_t n)
uint8_t * get_raw_data_ptr()
void exceptions_throw_negativearraysizeexception(void)
arraydescriptor * arraydesc
BooleanArray(int32_t length)
void set_region(int32_t offset, int32_t count, const T *buffer)
void exceptions_throw_arrayindexoutofboundsexception(void)
This is a generic accessor class for Java arrays (of unspecified type), which can be used to safely o...
#define LLNI_vftbl_direct(obj)
bool builtin_canstore(java_handle_objectarray_t *oa, java_handle_t *o)
java_handle_array_t * _handle
FloatArray(java_handle_floatarray_t *h)
virtual T * get_raw_data_ptr()=0
ClassArray(int32_t length)
Creates an array of references to classinfos on the heap.
java_handle_t * get_boxed_element(int32_t index)
Returns a boxed element of the given Java array.
primitivetypeinfo primitivetype_table[PRIMITIVETYPE_MAX]
Actual implementation of access class for java.lang.Class arrays.
const char const void jint length
imm_union get_primitive_element(int32_t index)
Returns a primitive element of the given Java array.
void exceptions_throw_outofmemoryerror(void)
void set_boxed_element(int32_t index, java_handle_t *o)
Sets a boxed element in the given Java array.
java_handle_t ** get_raw_data_ptr()
IntArray(java_handle_intarray_t *h)