LibreOffice Module codemaker (master) 1
Public Types | Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
codemaker::javamaker::ClassFile::Code Class Reference

#include <classfile.hxx>

Collaboration diagram for codemaker::javamaker::ClassFile::Code:
[legend]

Public Types

typedef std::vector< unsignedchar >::size_type Branch
 
typedef std::vector< unsignedchar >::size_type Position
 

Public Member Functions

 ~Code ()
 
void instrAastore ()
 
void instrAconstNull ()
 
void instrAnewarray (rtl::OString const &type)
 
void instrAreturn ()
 
void instrAthrow ()
 
void instrCheckcast (rtl::OString const &type)
 
void instrDup ()
 
void instrGetstatic (rtl::OString const &type, rtl::OString const &name, rtl::OString const &descriptor)
 
Branch instrIfAcmpne ()
 
Branch instrIfeq ()
 
Branch instrIfnull ()
 
void instrInstanceof (rtl::OString const &type)
 
void instrInvokeinterface (rtl::OString const &type, rtl::OString const &name, rtl::OString const &descriptor, sal_uInt8 args)
 
void instrInvokespecial (rtl::OString const &type, rtl::OString const &name, rtl::OString const &descriptor)
 
void instrInvokestatic (rtl::OString const &type, rtl::OString const &name, rtl::OString const &descriptor)
 
void instrInvokevirtual (rtl::OString const &type, rtl::OString const &name, rtl::OString const &descriptor)
 
void instrLookupswitch (Code const *defaultBlock, std::vector< std::pair< sal_Int32, Code * > > const &blocks)
 
void instrNew (rtl::OString const &type)
 
void instrNewarray (codemaker::UnoType::Sort sort)
 
void instrPop ()
 
void instrPutfield (rtl::OString const &type, rtl::OString const &name, rtl::OString const &descriptor)
 
void instrPutstatic (rtl::OString const &type, rtl::OString const &name, rtl::OString const &descriptor)
 
void instrReturn ()
 
void instrSwap ()
 
void instrTableswitch (Code const *defaultBlock, sal_Int32 low, std::vector< std::unique_ptr< Code > > const &blocks)
 
void loadIntegerConstant (sal_Int32 value)
 
void loadStringConstant (rtl::OString const &value)
 
void loadLocalInteger (sal_uInt16 index)
 
void loadLocalLong (sal_uInt16 index)
 
void loadLocalFloat (sal_uInt16 index)
 
void loadLocalDouble (sal_uInt16 index)
 
void loadLocalReference (sal_uInt16 index)
 
void storeLocalReference (sal_uInt16 index)
 
void branchHere (Branch branch)
 
void addException (Position start, Position end, Position handler, rtl::OString const &type)
 
void setMaxStackAndLocals (sal_uInt16 maxStack, sal_uInt16 maxLocals)
 
Position getPosition () const
 

Private Member Functions

 Code (Code const &)=delete
 
Codeoperator= (const Code &)=delete
 
 Code (ClassFile &classFile)
 
void ldc (sal_uInt16 index)
 
void accessLocal (sal_uInt16 index, sal_uInt8 fastOp, sal_uInt8 normalOp)
 

Private Attributes

ClassFilem_classFile
 
sal_uInt16 m_maxStack
 
sal_uInt16 m_maxLocals
 
std::vector< unsigned char > m_code
 
sal_uInt16 m_exceptionTableLength
 
std::vector< unsigned char > m_exceptionTable
 

Friends

class ClassFile
 

Detailed Description

Definition at line 48 of file classfile.hxx.

Member Typedef Documentation

◆ Branch

typedef std::vector<unsignedchar>::size_type codemaker::javamaker::ClassFile::Code::Branch

Definition at line 50 of file classfile.hxx.

◆ Position

typedef std::vector<unsignedchar>::size_type codemaker::javamaker::ClassFile::Code::Position

Definition at line 51 of file classfile.hxx.

Constructor & Destructor Documentation

◆ ~Code()

ClassFile::Code::~Code ( )

Definition at line 111 of file classfile.cxx.

◆ Code() [1/2]

codemaker::javamaker::ClassFile::Code::Code ( Code const &  )
privatedelete

◆ Code() [2/2]

ClassFile::Code::Code ( ClassFile classFile)
explicitprivate

Definition at line 427 of file classfile.cxx.

Member Function Documentation

◆ accessLocal()

void ClassFile::Code::accessLocal ( sal_uInt16  index,
sal_uInt8  fastOp,
sal_uInt8  normalOp 
)
private

Definition at line 446 of file classfile.cxx.

References index.

◆ addException()

void ClassFile::Code::addException ( Position  start,
Position  end,
Position  handler,
rtl::OString const &  type 
)

Definition at line 406 of file classfile.cxx.

References end, SAL_MAX_UINT16, start, and type.

◆ branchHere()

void ClassFile::Code::branchHere ( Branch  branch)

Definition at line 398 of file classfile.cxx.

References n, and SAL_MAX_INT16.

◆ getPosition()

ClassFile::Code::Position ClassFile::Code::getPosition ( ) const

Definition at line 423 of file classfile.cxx.

◆ instrAastore()

void ClassFile::Code::instrAastore ( )

Definition at line 113 of file classfile.cxx.

◆ instrAconstNull()

void ClassFile::Code::instrAconstNull ( )

Definition at line 118 of file classfile.cxx.

◆ instrAnewarray()

void ClassFile::Code::instrAnewarray ( rtl::OString const &  type)

Definition at line 123 of file classfile.cxx.

References type.

◆ instrAreturn()

void ClassFile::Code::instrAreturn ( )

Definition at line 129 of file classfile.cxx.

◆ instrAthrow()

void ClassFile::Code::instrAthrow ( )

Definition at line 134 of file classfile.cxx.

◆ instrCheckcast()

void ClassFile::Code::instrCheckcast ( rtl::OString const &  type)

Definition at line 139 of file classfile.cxx.

References type.

◆ instrDup()

void ClassFile::Code::instrDup ( )

Definition at line 145 of file classfile.cxx.

◆ instrGetstatic()

void ClassFile::Code::instrGetstatic ( rtl::OString const &  type,
rtl::OString const &  name,
rtl::OString const &  descriptor 
)

Definition at line 150 of file classfile.cxx.

References name, and type.

◆ instrIfAcmpne()

ClassFile::Code::Branch ClassFile::Code::instrIfAcmpne ( )

Definition at line 159 of file classfile.cxx.

◆ instrIfeq()

ClassFile::Code::Branch ClassFile::Code::instrIfeq ( )

Definition at line 167 of file classfile.cxx.

◆ instrIfnull()

ClassFile::Code::Branch ClassFile::Code::instrIfnull ( )

Definition at line 175 of file classfile.cxx.

◆ instrInstanceof()

void ClassFile::Code::instrInstanceof ( rtl::OString const &  type)

Definition at line 183 of file classfile.cxx.

References type.

◆ instrInvokeinterface()

void ClassFile::Code::instrInvokeinterface ( rtl::OString const &  type,
rtl::OString const &  name,
rtl::OString const &  descriptor,
sal_uInt8  args 
)

Definition at line 189 of file classfile.cxx.

References args, name, and type.

◆ instrInvokespecial()

void ClassFile::Code::instrInvokespecial ( rtl::OString const &  type,
rtl::OString const &  name,
rtl::OString const &  descriptor 
)

Definition at line 201 of file classfile.cxx.

References name, and type.

◆ instrInvokestatic()

void ClassFile::Code::instrInvokestatic ( rtl::OString const &  type,
rtl::OString const &  name,
rtl::OString const &  descriptor 
)

Definition at line 210 of file classfile.cxx.

References name, and type.

◆ instrInvokevirtual()

void ClassFile::Code::instrInvokevirtual ( rtl::OString const &  type,
rtl::OString const &  name,
rtl::OString const &  descriptor 
)

Definition at line 219 of file classfile.cxx.

References name, and type.

◆ instrLookupswitch()

void ClassFile::Code::instrLookupswitch ( Code const *  defaultBlock,
std::vector< std::pair< sal_Int32, Code * > > const &  blocks 
)

Definition at line 228 of file classfile.cxx.

References i, m_code, SAL_MAX_INT32, and size.

◆ instrNew()

void ClassFile::Code::instrNew ( rtl::OString const &  type)

Definition at line 263 of file classfile.cxx.

References type.

◆ instrNewarray()

void ClassFile::Code::instrNewarray ( codemaker::UnoType::Sort  sort)

Definition at line 269 of file classfile.cxx.

References codemaker::UnoType::Boolean, and codemaker::UnoType::Char.

◆ instrPop()

void ClassFile::Code::instrPop ( )

Definition at line 280 of file classfile.cxx.

◆ instrPutfield()

void ClassFile::Code::instrPutfield ( rtl::OString const &  type,
rtl::OString const &  name,
rtl::OString const &  descriptor 
)

Definition at line 285 of file classfile.cxx.

References name, and type.

◆ instrPutstatic()

void ClassFile::Code::instrPutstatic ( rtl::OString const &  type,
rtl::OString const &  name,
rtl::OString const &  descriptor 
)

Definition at line 294 of file classfile.cxx.

References name, and type.

◆ instrReturn()

void ClassFile::Code::instrReturn ( )

Definition at line 303 of file classfile.cxx.

◆ instrSwap()

void ClassFile::Code::instrSwap ( )

Definition at line 308 of file classfile.cxx.

◆ instrTableswitch()

void ClassFile::Code::instrTableswitch ( Code const *  defaultBlock,
sal_Int32  low,
std::vector< std::unique_ptr< Code > > const &  blocks 
)

Definition at line 313 of file classfile.cxx.

References i, m_code, and size.

◆ ldc()

void ClassFile::Code::ldc ( sal_uInt16  index)
private

Definition at line 434 of file classfile.cxx.

References index.

◆ loadIntegerConstant()

void ClassFile::Code::loadIntegerConstant ( sal_Int32  value)

Definition at line 353 of file classfile.cxx.

References value.

◆ loadLocalDouble()

void ClassFile::Code::loadLocalDouble ( sal_uInt16  index)

Definition at line 386 of file classfile.cxx.

References index.

◆ loadLocalFloat()

void ClassFile::Code::loadLocalFloat ( sal_uInt16  index)

Definition at line 382 of file classfile.cxx.

References index.

◆ loadLocalInteger()

void ClassFile::Code::loadLocalInteger ( sal_uInt16  index)

Definition at line 374 of file classfile.cxx.

References index.

◆ loadLocalLong()

void ClassFile::Code::loadLocalLong ( sal_uInt16  index)

Definition at line 378 of file classfile.cxx.

References index.

◆ loadLocalReference()

void ClassFile::Code::loadLocalReference ( sal_uInt16  index)

Definition at line 390 of file classfile.cxx.

References index.

◆ loadStringConstant()

void ClassFile::Code::loadStringConstant ( rtl::OString const &  value)

Definition at line 370 of file classfile.cxx.

References value.

◆ operator=()

Code & codemaker::javamaker::ClassFile::Code::operator= ( const Code )
privatedelete

◆ setMaxStackAndLocals()

void codemaker::javamaker::ClassFile::Code::setMaxStackAndLocals ( sal_uInt16  maxStack,
sal_uInt16  maxLocals 
)
inline

Definition at line 126 of file classfile.hxx.

References m_maxLocals, and m_maxStack.

◆ storeLocalReference()

void ClassFile::Code::storeLocalReference ( sal_uInt16  index)

Definition at line 394 of file classfile.cxx.

References index.

Friends And Related Function Documentation

◆ ClassFile

friend class ClassFile
friend

Definition at line 149 of file classfile.hxx.

Member Data Documentation

◆ m_classFile

ClassFile& codemaker::javamaker::ClassFile::Code::m_classFile
private

Definition at line 142 of file classfile.hxx.

◆ m_code

std::vector< unsigned char > codemaker::javamaker::ClassFile::Code::m_code
private

Definition at line 145 of file classfile.hxx.

Referenced by instrLookupswitch(), and instrTableswitch().

◆ m_exceptionTable

std::vector< unsigned char > codemaker::javamaker::ClassFile::Code::m_exceptionTable
private

Definition at line 147 of file classfile.hxx.

◆ m_exceptionTableLength

sal_uInt16 codemaker::javamaker::ClassFile::Code::m_exceptionTableLength
private

Definition at line 146 of file classfile.hxx.

◆ m_maxLocals

sal_uInt16 codemaker::javamaker::ClassFile::Code::m_maxLocals
private

Definition at line 144 of file classfile.hxx.

Referenced by setMaxStackAndLocals().

◆ m_maxStack

sal_uInt16 codemaker::javamaker::ClassFile::Code::m_maxStack
private

Definition at line 143 of file classfile.hxx.

Referenced by setMaxStackAndLocals().


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