CACAO
Public Member Functions | Private Types | Private Member Functions | Private Attributes
cacao::DescriptorPool Struct Reference

Public Member Functions

 DescriptorPool (classinfo *referer)
 
bool add_class (Utf8String name)
 
bool add_field (Utf8String desc)
 
ssize_t add_method (Utf8String desc)
 
constant_classrefcreate_classrefs (s4 *count)
 
constant_classreflookup_classref (Utf8String classname)
 
void alloc_parsed_descriptors ()
 
typedescparse_field_descriptor (Utf8String desc)
 
methoddescparse_method_descriptor (Utf8String desc, s4 mflags, constant_classref *thisclass)
 
classinfoget_referer ()
 
void get_sizes (size_t *classrefsize, size_t *descsize)
 

Private Types

typedef HashTable
< InsertOnlyNameValuePair< u2 > > 
ClassrefHash
 
typedef HashTable
< InsertOnlyNameValuePair
< typedesc * > > 
FieldrefHash
 

Private Member Functions

template<typename T >
T * allocate (size_t size=sizeof(T))
 

Private Attributes

ClassrefHash classrefhash
 
FieldrefHash fieldrefhash
 
classinforeferer
 
size_t fieldcount
 
size_t methodcount
 
size_t paramcount
 
size_t descriptorsize
 
constant_classrefclassrefs
 
Mutexmutex
 
uint8_t * descriptors
 
uint8_t * descriptors_next
 

Detailed Description

Definition at line 82 of file descriptor.hpp.

Member Typedef Documentation

Definition at line 105 of file descriptor.hpp.

Definition at line 106 of file descriptor.hpp.

Constructor & Destructor Documentation

DescriptorPool::DescriptorPool ( classinfo referer)

Definition at line 479 of file descriptor.cpp.

Member Function Documentation

bool DescriptorPool::add_class ( Utf8String  name)

Definition at line 511 of file descriptor.cpp.

bool DescriptorPool::add_field ( Utf8String  desc)

Definition at line 543 of file descriptor.cpp.

ssize_t DescriptorPool::add_method ( Utf8String  desc)

Definition at line 576 of file descriptor.cpp.

void DescriptorPool::alloc_parsed_descriptors ( )

Definition at line 678 of file descriptor.cpp.

template<typename T >
T * DescriptorPool::allocate ( size_t  size = sizeof(T))
inlineprivate

Definition at line 497 of file descriptor.cpp.

constant_classref * DescriptorPool::create_classrefs ( s4 count)

Definition at line 630 of file descriptor.cpp.

classinfo * DescriptorPool::get_referer ( )

Definition at line 945 of file descriptor.cpp.

void DescriptorPool::get_sizes ( size_t *  classrefsize,
size_t *  descsize 
)

Definition at line 961 of file descriptor.cpp.

constant_classref * DescriptorPool::lookup_classref ( Utf8String  classname)

Definition at line 657 of file descriptor.cpp.

typedesc * DescriptorPool::parse_field_descriptor ( Utf8String  desc)

Definition at line 708 of file descriptor.cpp.

methoddesc * DescriptorPool::parse_method_descriptor ( Utf8String  desc,
s4  mflags,
constant_classref thisclass 
)

Definition at line 751 of file descriptor.cpp.

Field Documentation

ClassrefHash cacao::DescriptorPool::classrefhash
private

Definition at line 108 of file descriptor.hpp.

constant_classref* cacao::DescriptorPool::classrefs
private

Definition at line 116 of file descriptor.hpp.

uint8_t* cacao::DescriptorPool::descriptors
private

Definition at line 121 of file descriptor.hpp.

uint8_t* cacao::DescriptorPool::descriptors_next
private

Definition at line 122 of file descriptor.hpp.

size_t cacao::DescriptorPool::descriptorsize
private

Definition at line 115 of file descriptor.hpp.

size_t cacao::DescriptorPool::fieldcount
private

Definition at line 112 of file descriptor.hpp.

FieldrefHash cacao::DescriptorPool::fieldrefhash
private

Definition at line 109 of file descriptor.hpp.

size_t cacao::DescriptorPool::methodcount
private

Definition at line 113 of file descriptor.hpp.

Mutex* cacao::DescriptorPool::mutex
private

Definition at line 117 of file descriptor.hpp.

size_t cacao::DescriptorPool::paramcount
private

Definition at line 114 of file descriptor.hpp.

classinfo* cacao::DescriptorPool::referer
private

Definition at line 111 of file descriptor.hpp.


The documentation for this struct was generated from the following files: