CACAO
Data Structures | Macros | Enumerations | Functions
typeinfo.hpp File Reference

Go to the source code of this file.

Data Structures

struct  typeinfo_t
 
struct  typeinfo_mergedlist_t
 
struct  typedescriptor_t
 

Macros

#define TYPEINFO_DEBUG
 
#define TYPECHECK_DEBUG
 
#define TYPECHECK_MAYBE   0x02
 
#define TYPECHECK_FAIL   0x04
 
#define TYPEVECTOR_SIZE(size)   ((size) * sizeof(varinfo))
 
#define DNEW_TYPEVECTOR(size)   ((varinfo *) DumpMemory::allocate(TYPEVECTOR_SIZE(size)))
 
#define DMNEW_TYPEVECTOR(num, size)   ((varinfo *) DumpMemory::allocate((num) * TYPEVECTOR_SIZE(size)))
 
#define MGET_TYPEVECTOR(array, index, size)   ((varinfo*) (((u1*)(array)) + TYPEVECTOR_SIZE(size) * (index)))
 

Enumerations

enum  typecheck_result { typecheck_FALSE = false, typecheck_TRUE = true, typecheck_MAYBE = TYPECHECK_MAYBE, typecheck_FAIL = TYPECHECK_FAIL }
 

Functions

void typeinfo_init_classinfo (typeinfo_t *info, classinfo *c)
 
bool typevector_checktype (varinfo *set, int index, int type)
 
bool typevector_checkreference (varinfo *set, int index)
 
bool typevector_checkretaddr (varinfo *set, int index)
 
void typevector_store (varinfo *set, int index, Type type, typeinfo_t *info)
 
void typevector_store_retaddr (varinfo *set, int index, typeinfo_t *info)
 
bool typevector_init_object (varinfo *set, void *ins, classref_or_classinfo initclass, int size)
 
varinfotypevector_copy (varinfo *src, int size)
 
void typevector_copy_inplace (varinfo *src, varinfo *dst, int size)
 
typecheck_result typevector_merge (methodinfo *m, varinfo *dst, varinfo *y, int size)
 
int typedescriptors_init_from_methoddesc (typedescriptor_t *td, methoddesc *desc, int buflen, bool twoword, int startindex, typedescriptor_t *returntype)
 
bool typeinfo_init_varinfos_from_methoddesc (varinfo *vars, methoddesc *desc, int buflen, int startindex, s4 *map, typedescriptor_t *returntype)
 
void typeinfo_test ()
 
void typeinfo_print_class (FILE *file, classref_or_classinfo c)
 
void typeinfo_print (FILE *file, const typeinfo_t *info, int indent)
 
void typeinfo_print_short (FILE *file, const typeinfo_t *info)
 
void typeinfo_print_type (FILE *file, int type, const typeinfo_t *info)
 
void typedescriptor_print (FILE *file, typedescriptor_t *td)
 
void typevector_print (FILE *file, varinfo *vec, int size)
 

Macro Definition Documentation

#define DMNEW_TYPEVECTOR (   num,
  size 
)    ((varinfo *) DumpMemory::allocate((num) * TYPEVECTOR_SIZE(size)))

Definition at line 406 of file typeinfo.hpp.

#define DNEW_TYPEVECTOR (   size)    ((varinfo *) DumpMemory::allocate(TYPEVECTOR_SIZE(size)))

Definition at line 403 of file typeinfo.hpp.

#define MGET_TYPEVECTOR (   array,
  index,
  size 
)    ((varinfo*) (((u1*)(array)) + TYPEVECTOR_SIZE(size) * (index)))

Definition at line 409 of file typeinfo.hpp.

#define TYPECHECK_DEBUG

Definition at line 58 of file typeinfo.hpp.

#define TYPECHECK_FAIL   0x04

Definition at line 79 of file typeinfo.hpp.

#define TYPECHECK_MAYBE   0x02

Definition at line 78 of file typeinfo.hpp.

#define TYPEINFO_DEBUG

Definition at line 56 of file typeinfo.hpp.

#define TYPEVECTOR_SIZE (   size)    ((size) * sizeof(varinfo))

Definition at line 400 of file typeinfo.hpp.

Enumeration Type Documentation

Enumerator
typecheck_FALSE 
typecheck_TRUE 
typecheck_MAYBE 
typecheck_FAIL 

Definition at line 81 of file typeinfo.hpp.

Function Documentation

void typedescriptor_print ( FILE *  file,
typedescriptor_t td 
)
int typedescriptors_init_from_methoddesc ( typedescriptor_t td,
methoddesc desc,
int  buflen,
bool  twoword,
int  startindex,
typedescriptor_t returntype 
)

Definition at line 1088 of file typeinfo.cpp.

void typeinfo_init_classinfo ( typeinfo_t info,
classinfo c 
)
bool typeinfo_init_varinfos_from_methoddesc ( varinfo vars,
methoddesc desc,
int  buflen,
int  startindex,
s4 map,
typedescriptor_t returntype 
)

Definition at line 1008 of file typeinfo.cpp.

void typeinfo_print ( FILE *  file,
const typeinfo_t info,
int  indent 
)

Definition at line 2138 of file typeinfo.cpp.

void typeinfo_print_class ( FILE *  file,
classref_or_classinfo  c 
)

Definition at line 2119 of file typeinfo.cpp.

void typeinfo_print_short ( FILE *  file,
const typeinfo_t info 
)

Definition at line 2212 of file typeinfo.cpp.

void typeinfo_print_type ( FILE *  file,
int  type,
const typeinfo_t info 
)

Definition at line 2264 of file typeinfo.cpp.

void typeinfo_test ( )

Definition at line 2101 of file typeinfo.cpp.

bool typevector_checkreference ( varinfo set,
int  index 
)

Definition at line 154 of file typeinfo.cpp.

bool typevector_checkretaddr ( varinfo set,
int  index 
)

Definition at line 175 of file typeinfo.cpp.

bool typevector_checktype ( varinfo set,
int  index,
int  type 
)

Definition at line 132 of file typeinfo.cpp.

varinfo* typevector_copy ( varinfo src,
int  size 
)

Definition at line 87 of file typeinfo.cpp.

void typevector_copy_inplace ( varinfo src,
varinfo dst,
int  size 
)

Definition at line 111 of file typeinfo.cpp.

bool typevector_init_object ( varinfo set,
void ins,
classref_or_classinfo  initclass,
int  size 
)

Definition at line 245 of file typeinfo.cpp.

typecheck_result typevector_merge ( methodinfo m,
varinfo dst,
varinfo y,
int  size 
)

Definition at line 285 of file typeinfo.cpp.

void typevector_print ( FILE *  file,
varinfo vec,
int  size 
)
void typevector_store ( varinfo set,
int  index,
Type  type,
typeinfo_t info 
)

Definition at line 195 of file typeinfo.cpp.

void typevector_store_retaddr ( varinfo set,
int  index,
typeinfo_t info 
)

Definition at line 216 of file typeinfo.cpp.