CACAO
Data Structures | Namespaces | Enumerations | Functions
class.hpp File Reference

Go to the source code of this file.

Data Structures

struct  dummy_java_lang_Class
 
struct  classinfo
 
struct  innerclassinfo
 
struct  extra_classref
 

Namespaces

 cacao
 This file contains the Instruction class.
 

Enumerations

enum  ClassState {
  CLASS_LOADING = 0x0001, CLASS_LOADED = 0x0002, CLASS_LINKING = 0x0004, CLASS_LINKED = 0x0008,
  CLASS_INITIALIZING = 0x0010, CLASS_INITIALIZED = 0x0020, CLASS_ERROR = 0x0040
}
 

Functions

classinfoclass_create_classinfo (Utf8String u)
 
void class_postset_header_vftbl (void)
 
classinfoclass_define (Utf8String name, classloader_t *cl, int32_t length, uint8_t *data, java_handle_t *pd)
 
void class_set_packagename (classinfo *c)
 
bool class_load_attributes (cacao::ClassBuffer &cb)
 
bool class_initializing_thread_is_self (classinfo *c)
 Helper function for the function class_is_or_almost_initialized. More...
 
voidclass_getconstant (classinfo *c, u4 pos, ConstantPoolTag ctype)
 
voidinnerclass_getconstant (classinfo *c, u4 pos, ConstantPoolTag ctype)
 
void class_free (classinfo *)
 
classinfoclass_array_of (classinfo *component, bool link)
 
classinfoclass_multiarray_of (s4 dim, classinfo *element, bool link)
 
constant_classrefclass_lookup_classref (classinfo *cls, Utf8String name)
 
constant_classrefclass_get_classref (classinfo *cls, Utf8String name)
 
constant_classrefclass_get_self_classref (classinfo *cls)
 
constant_classrefclass_get_classref_multiarray_of (s4 dim, constant_classref *ref)
 
constant_classrefclass_get_classref_component_of (constant_classref *ref)
 
fieldinfoclass_findfield (classinfo *c, Utf8String name, Utf8String desc)
 
fieldinfoclass_findfield_by_name (classinfo *c, Utf8String name, bool throwexception)
 
fieldinfoclass_resolvefield (classinfo *c, Utf8String name, Utf8String desc, classinfo *referer)
 
methodinfoclass_findmethod (classinfo *c, Utf8String name, Utf8String desc)
 
methodinfoclass_resolvemethod (classinfo *c, Utf8String name, Utf8String dest)
 
methodinfoclass_resolveclassmethod (classinfo *c, Utf8String name, Utf8String dest, classinfo *referer, bool throwexception)
 
methodinfoclass_resolveinterfacemethod (classinfo *c, Utf8String name, Utf8String dest, classinfo *referer, bool throwexception)
 
bool class_issubclass (classinfo *sub, classinfo *super)
 
bool class_isanysubclass (classinfo *sub, classinfo *super)
 
bool class_is_arraycompatible (struct arraydescriptor *desc, struct arraydescriptor *target)
 
bool class_is_assignable_from (classinfo *to, classinfo *from)
 
bool class_is_instance (classinfo *c, java_handle_t *h)
 
static classloader_tclass_get_classloader (classinfo *c)
 
static classinfoclass_get_superclass (classinfo *c)
 
classinfoclass_get_componenttype (classinfo *c)
 
java_handle_objectarray_tclass_get_declaredclasses (classinfo *c, bool publicOnly)
 
java_handle_objectarray_tclass_get_declaredconstructors (classinfo *c, bool publicOnly)
 Return an array of declared constructors of the given class. More...
 
java_handle_objectarray_tclass_get_declaredfields (classinfo *c, bool publicOnly)
 
java_handle_objectarray_tclass_get_declaredmethods (classinfo *c, bool publicOnly)
 
classinfoclass_get_declaringclass (classinfo *c)
 
classinfoclass_get_enclosingclass (classinfo *c)
 
java_handle_tclass_get_enclosingconstructor (classinfo *c)
 Return the enclosing constructor as java.lang.reflect.Constructor object for the given class. More...
 
methodinfoclass_get_enclosingmethod_raw (classinfo *c)
 
java_handle_tclass_get_enclosingmethod (classinfo *c)
 Return the enclosing method as java.lang.reflect.Method object for the given class. More...
 
java_handle_objectarray_tclass_get_interfaces (classinfo *c)
 
java_handle_bytearray_tclass_get_annotations (classinfo *c)
 
int32_t class_get_modifiers (classinfo *c, bool ignoreInnerClassesAttrib)
 
java_handle_tclass_get_name (classinfo *c)
 
Utf8String class_get_signature (classinfo *c)
 
void class_printflags (classinfo *c)
 
void class_print (classinfo *c)
 
void class_println (classinfo *c)
 
void class_classref_print (constant_classref *cr)
 
void class_classref_println (constant_classref *cr)
 
void class_classref_or_classinfo_print (classref_or_classinfo c)
 
void class_classref_or_classinfo_println (classref_or_classinfo c)
 
OStreamcacao::operator<< (OStream &os, const classinfo *c)
 
void class_showmethods (classinfo *c)
 
void class_showconstantpool (classinfo *c)
 
java_handle_tclass_get_classname (classinfo *c)
 Returns the classname of the class, where slashes ('/') are replaced by dots ('. More...
 
static bool class_is_primitive (classinfo *c)
 
static bool class_is_anonymousclass (classinfo *c)
 
static bool class_is_array (classinfo *c)
 
static bool class_is_interface (classinfo *c)
 
static bool class_is_localclass (classinfo *c)
 
static bool class_is_memberclass (classinfo *c)
 
static bool class_is_or_almost_initialized (classinfo *c)
 

Enumeration Type Documentation

enum ClassState
Enumerator
CLASS_LOADING 
CLASS_LOADED 
CLASS_LINKING 
CLASS_LINKED 
CLASS_INITIALIZING 
CLASS_INITIALIZED 
CLASS_ERROR 

Definition at line 54 of file class.hpp.

Function Documentation

classinfo* class_array_of ( classinfo component,
bool  link 
)

Definition at line 832 of file class.cpp.

void class_classref_or_classinfo_print ( classref_or_classinfo  c)

Definition at line 2306 of file class.cpp.

void class_classref_or_classinfo_println ( classref_or_classinfo  c)

Definition at line 2327 of file class.cpp.

void class_classref_print ( constant_classref cr)

Definition at line 2251 of file class.cpp.

void class_classref_println ( constant_classref cr)

Definition at line 2291 of file class.cpp.

classinfo* class_create_classinfo ( Utf8String  u)

Definition at line 145 of file class.cpp.

classinfo* class_define ( Utf8String  name,
classloader_t cl,
int32_t  length,
uint8_t *  data,
java_handle_t pd 
)

Definition at line 243 of file class.cpp.

fieldinfo* class_findfield ( classinfo c,
Utf8String  name,
Utf8String  desc 
)

Definition at line 1299 of file class.cpp.

fieldinfo* class_findfield_by_name ( classinfo c,
Utf8String  name,
bool  throwexception 
)

Definition at line 1319 of file class.cpp.

methodinfo* class_findmethod ( classinfo c,
Utf8String  name,
Utf8String  desc 
)

Definition at line 1124 of file class.cpp.

void class_free ( classinfo )

Definition at line 739 of file class.cpp.

java_handle_bytearray_t* class_get_annotations ( classinfo c)

Definition at line 2100 of file class.cpp.

static classloader_t * class_get_classloader ( classinfo c)
inlinestatic

Definition at line 402 of file class.hpp.

java_handle_t* class_get_classname ( classinfo c)

Returns the classname of the class, where slashes ('/') are replaced by dots ('.

').

Parameters
cclass to get name of
Returns
classname

Definition at line 86 of file class.cpp.

constant_classref* class_get_classref ( classinfo cls,
Utf8String  name 
)

Definition at line 985 of file class.cpp.

constant_classref* class_get_classref_component_of ( constant_classref ref)

Definition at line 1094 of file class.cpp.

constant_classref* class_get_classref_multiarray_of ( s4  dim,
constant_classref ref 
)

Definition at line 1038 of file class.cpp.

classinfo* class_get_componenttype ( classinfo c)

Definition at line 1594 of file class.cpp.

java_handle_objectarray_t* class_get_declaredclasses ( classinfo c,
bool  publicOnly 
)

Definition at line 1626 of file class.cpp.

java_handle_objectarray_t* class_get_declaredconstructors ( classinfo c,
bool  publicOnly 
)

Return an array of declared constructors of the given class.

Parameters
cclass to get the constructors of
publicOnlyshow only public fields
Returns
array of java.lang.reflect.Constructor

Definition at line 1708 of file class.cpp.

java_handle_objectarray_t* class_get_declaredfields ( classinfo c,
bool  publicOnly 
)

Definition at line 1765 of file class.cpp.

java_handle_objectarray_t* class_get_declaredmethods ( classinfo c,
bool  publicOnly 
)

Definition at line 1818 of file class.cpp.

classinfo* class_get_declaringclass ( classinfo c)

Definition at line 1882 of file class.cpp.

classinfo* class_get_enclosingclass ( classinfo c)

Definition at line 1920 of file class.cpp.

java_handle_t* class_get_enclosingconstructor ( classinfo c)

Return the enclosing constructor as java.lang.reflect.Constructor object for the given class.

Parameters
cclass to return the enclosing constructor for
Returns
java.lang.reflect.Constructor object of the enclosing constructor

Definition at line 1962 of file class.cpp.

java_handle_t* class_get_enclosingmethod ( classinfo c)

Return the enclosing method as java.lang.reflect.Method object for the given class.

Parameters
cclass to return the enclosing method for
Returns
java.lang.reflect.Method object of the enclosing method

Definition at line 2036 of file class.cpp.

methodinfo* class_get_enclosingmethod_raw ( classinfo c)

Definition at line 1995 of file class.cpp.

java_handle_objectarray_t* class_get_interfaces ( classinfo c)

Definition at line 2065 of file class.cpp.

int32_t class_get_modifiers ( classinfo c,
bool  ignoreInnerClassesAttrib 
)

Definition at line 2126 of file class.cpp.

java_handle_t* class_get_name ( classinfo c)
constant_classref* class_get_self_classref ( classinfo cls)

Definition at line 1013 of file class.cpp.

Utf8String class_get_signature ( classinfo c)

Definition at line 2183 of file class.cpp.

static classinfo * class_get_superclass ( classinfo c)
inlinestatic

Definition at line 420 of file class.hpp.

void* class_getconstant ( classinfo c,
u4  pos,
ConstantPoolTag  ctype 
)

Definition at line 679 of file class.cpp.

bool class_initializing_thread_is_self ( classinfo c)

Helper function for the function class_is_or_almost_initialized.

Definition at line 2169 of file class.cpp.

static bool class_is_anonymousclass ( classinfo c)
inlinestatic

Definition at line 326 of file class.hpp.

static bool class_is_array ( classinfo c)
inlinestatic

Definition at line 341 of file class.hpp.

bool class_is_arraycompatible ( struct arraydescriptor desc,
struct arraydescriptor target 
)

Definition at line 1488 of file class.cpp.

bool class_is_assignable_from ( classinfo to,
classinfo from 
)

Definition at line 1539 of file class.cpp.

bool class_is_instance ( classinfo c,
java_handle_t h 
)

Definition at line 1572 of file class.cpp.

static bool class_is_interface ( classinfo c)
inlinestatic

Definition at line 357 of file class.hpp.

static bool class_is_localclass ( classinfo c)
inlinestatic

Definition at line 372 of file class.hpp.

static bool class_is_memberclass ( classinfo c)
inlinestatic

Definition at line 387 of file class.hpp.

static bool class_is_or_almost_initialized ( classinfo c)
inlinestatic

Definition at line 433 of file class.hpp.

static bool class_is_primitive ( classinfo c)
inlinestatic

Definition at line 311 of file class.hpp.

bool class_isanysubclass ( classinfo sub,
classinfo super 
)

Definition at line 1435 of file class.cpp.

bool class_issubclass ( classinfo sub,
classinfo super 
)

Definition at line 1404 of file class.cpp.

bool class_load_attributes ( cacao::ClassBuffer cb)

Definition at line 456 of file class.cpp.

constant_classref* class_lookup_classref ( classinfo cls,
Utf8String  name 
)

Definition at line 941 of file class.cpp.

classinfo* class_multiarray_of ( s4  dim,
classinfo element,
bool  link 
)

Definition at line 881 of file class.cpp.

void class_postset_header_vftbl ( void  )

Definition at line 210 of file class.cpp.

void class_print ( classinfo c)

Definition at line 2231 of file class.cpp.

void class_printflags ( classinfo c)

Definition at line 2202 of file class.cpp.

void class_println ( classinfo c)

Definition at line 2276 of file class.cpp.

methodinfo* class_resolveclassmethod ( classinfo c,
Utf8String  name,
Utf8String  dest,
classinfo referer,
bool  throwexception 
)

Definition at line 1211 of file class.cpp.

fieldinfo* class_resolvefield ( classinfo c,
Utf8String  name,
Utf8String  desc,
classinfo referer 
)

Definition at line 1383 of file class.cpp.

methodinfo* class_resolveinterfacemethod ( classinfo c,
Utf8String  name,
Utf8String  dest,
classinfo referer,
bool  throwexception 
)

Definition at line 1261 of file class.cpp.

methodinfo* class_resolvemethod ( classinfo c,
Utf8String  name,
Utf8String  dest 
)

Definition at line 1145 of file class.cpp.

void class_set_packagename ( classinfo c)

Definition at line 102 of file class.cpp.

void class_showconstantpool ( classinfo c)

Definition at line 2342 of file class.cpp.

void class_showmethods ( classinfo c)

Definition at line 2439 of file class.cpp.

void* innerclass_getconstant ( classinfo c,
u4  pos,
ConstantPoolTag  ctype 
)

Definition at line 708 of file class.cpp.