An array of unsigned char in C (unsigned char*)

Introduced properties

fun move(dst_offset: Int, src_offset: Int, n: Int)

c :: NativeCByteArray :: move

Move n bytes from dst_offset to src_offset
init new(size: Int): NativeCByteArray

c :: NativeCByteArray :: new

Allocate a new array of size

Redefined properties

redef fun +(offset: Int): SELF

c $ NativeCByteArray :: +

Return pointer to the address to the second element of this array
redef type E: Byte

c $ NativeCByteArray :: E

Type of contained elements.
redef type SELF: NativeCByteArray

c $ NativeCByteArray :: SELF

Type of this instance, automatically specialized in every class
redef fun [](index: Int): E

c $ NativeCByteArray :: []

Get element at index.
redef fun []=(index: Int, val: E)

c $ NativeCByteArray :: []=

Set val at index.

All properties

fun !=(other: nullable Object): Bool

core :: Object :: !=

Have self and other different values?
abstract fun +(offset: Int): SELF

c :: NativeCArray :: +

Return pointer to the address to the second element of this array
fun ==(other: nullable Object): Bool

core :: Object :: ==

Have self and other the same value?
type CLASS: Class[SELF]

core :: Object :: CLASS

The type of the class of self.
type E: nullable Object

c :: NativeCArray :: E

Type of contained elements.
type SELF: Object

core :: Object :: SELF

Type of this instance, automatically specialized in every class
abstract fun [](index: Int): E

c :: NativeCArray :: []

Get element at index.
abstract fun []=(index: Int, val: E)

c :: NativeCArray :: []=

Set val at index.
fun address_is_null: Bool

core :: Pointer :: address_is_null

Is the address behind this Object at NULL?
protected fun class_factory(name: String): CLASS

core :: Object :: class_factory

Implementation used by get_class to create the specific class.
fun class_name: String

core :: Object :: class_name

The class name of the object.
fun free

core :: Pointer :: free

Free the memory pointed by this pointer
fun get_class: CLASS

core :: Object :: get_class

The meta-object representing the dynamic type of self.
fun hash: Int

core :: Object :: hash

The hash code of the object.
init init

core :: Object :: init

fun inspect: String

core :: Object :: inspect

Developer readable representation of self.
protected fun inspect_head: String

core :: Object :: inspect_head

Return "CLASSNAME:#OBJECTID".
intern fun is_same_instance(other: nullable Object): Bool

core :: Object :: is_same_instance

Return true if self and other are the same instance (i.e. same identity).
fun is_same_serialized(other: nullable Object): Bool

core :: Object :: is_same_serialized

Is self the same as other in a serialization context?
intern fun is_same_type(other: Object): Bool

core :: Object :: is_same_type

Return true if self and other have the same dynamic type.
fun move(dst_offset: Int, src_offset: Int, n: Int)

c :: NativeCByteArray :: move

Move n bytes from dst_offset to src_offset
init new(size: Int): NativeCByteArray

c :: NativeCByteArray :: new

Allocate a new array of size
init nul: Pointer

core :: Pointer :: nul

C NULL pointer
intern fun object_id: Int

core :: Object :: object_id

An internal hash code for the object based on its identity.
fun output

core :: Object :: output

Display self on stdout (debug only).
intern fun output_class_name

core :: Object :: output_class_name

Display class name on stdout (debug only).
fun serialization_hash: Int

core :: Object :: serialization_hash

Hash value use for serialization
intern fun sys: Sys

core :: Object :: sys

Return the global sys object, the only instance of the Sys class.
abstract fun to_jvalue(env: JniEnv): JValue

core :: Object :: to_jvalue

fun to_s: String

core :: Object :: to_s

User readable representation of self.
package_diagram c::NativeCByteArray NativeCByteArray c::NativeCArray NativeCArray c::NativeCByteArray->c::NativeCArray core::Pointer Pointer c::NativeCArray->core::Pointer ...core::Pointer ... ...core::Pointer->core::Pointer

Ancestors

interface Object

core :: Object

The root of the class hierarchy.
extern class Pointer

core :: Pointer

Pointer classes are used to manipulate extern C structures.

Parents

extern class NativeCArray

c :: NativeCArray

A native C array, as in a pointer to the first element of the array

Class definitions

c $ NativeCByteArray
# An array of `unsigned char` in C (`unsigned char*`)
extern class NativeCByteArray `{ unsigned char* `}
	super NativeCArray
	redef type E: Byte

	# Allocate a new array of `size`
	new(size: Int) `{ return calloc(size, sizeof(unsigned char)); `}

	redef fun [](index) `{ return self[index]; `}
	redef fun []=(index, val) `{ self[index] = val; `}

	redef fun +(offset) `{ return self + offset; `}

	# Move `n` bytes from `dst_offset` to `src_offset`
	fun move(dst_offset, src_offset, n: Int) `{
		memmove(self+dst_offset, self+src_offset, n);
	`}
end
lib/c/c.nit:191,1--208,3

android :: load_image $ NativeCByteArray
redef class NativeCByteArray
	# Reverse Android multiplication of color values per the alpha channel
	private fun unmultiply(w, h: Int) `{
		int offset = 0;
		int x, y;
		for (x = 0; x < w; x ++)
			for (y = 0; y < h; y ++) {
				unsigned char a = self[offset+3];
				if (a != 0 && a != 0xFF) {
					self[offset] = self[offset] * 256 / a;
					self[offset+1] = self[offset+1] * 256 / a;
					self[offset+2] = self[offset+2] * 256 / a;
				}
				offset += 4;
			}
	`}
end
lib/android/load_image.nit:86,1--102,3

gamnit :: android19 $ NativeCByteArray
redef class NativeCByteArray

	# The data was not premultiplied, don't unmultiply it
	redef fun unmultiply(w, h) do end
end
lib/gamnit/android19.nit:42,1--46,3