decompiler  1.0.0
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
TypePointer Class Reference

Datatype object representing a pointer. More...

#include <type.hh>

Inheritance diagram for TypePointer:
Datatype

Public Member Functions

 TypePointer (const TypePointer &op)
 Construct from another TypePointer.
 
 TypePointer (int4 s, Datatype *pt, uint4 ws)
 Construct from a size, pointed-to type, and wordsize.
 
virtual void printRaw (ostream &s) const
 Print a description of the type to stream. More...
 
virtual int4 numDepend (void) const
 
virtual DatatypegetDepend (int4 index) const
 
virtual void printNameBase (ostream &s) const
 
virtual int4 compare (const Datatype &op, int4 level) const
 Compare for functional equivalence. More...
 
virtual int4 compareDependency (const Datatype &op) const
 Compare for storage in tree structure. More...
 
virtual Datatypeclone (void) const
 Clone the data-type.
 
virtual void saveXml (ostream &s) const
 Serialize the data-type to XML. More...
 
- Public Member Functions inherited from Datatype
 Datatype (const Datatype &op)
 Construct the base data-type copying low-level properties of another.
 
 Datatype (int4 s, type_metatype m)
 Construct the base data-type providing size and meta-type.
 
 Datatype (int4 s, type_metatype m, const string &n)
 Construct the base data-type providing size, meta-type, and name.
 
virtual DatatypegetSubType (uintb off, uintb *newoff) const
 Recover component data-type one-level down. More...
 
int4 typeOrderBool (const Datatype &op) const
 Order this with -op-, treating bool data-type as special. More...
 
void saveXmlBasic (ostream &s) const
 Save basic data-type properties. More...
 
void saveXmlRef (ostream &s) const
 Write an XML reference of this to stream. More...
 

Protected Member Functions

virtual void restoreXml (const Element *el, TypeFactory &typegrp)
 Restore data-type from XML. More...
 
 TypePointer (void)
 Internal constructor for use with restoreXml.
 
- Protected Member Functions inherited from Datatype
void restoreXmlBasic (const Element *el)
 Recover basic data-type properties. More...
 

Protected Attributes

Datatypeptrto
 Type being pointed to.
 
uint4 wordsize
 What size unit does the pointer address.
 
- Protected Attributes inherited from Datatype
int4 size
 Size (of variable holding a value of this type)
 
string name
 Name of type.
 
type_metatype metatype
 Meta-type - type disregarding size.
 
uint4 flags
 Boolean properties of the type.
 
uint8 id
 A unique id for the type (or 0 if an id is not assigned)
 

Friends

class TypeFactory
 

Additional Inherited Members

- Protected Types inherited from Datatype
enum  {
  coretype = 1, chartype = 2, enumtype = 4, poweroftwo = 8,
  utf16 = 16, utf32 = 32
}
 Boolean properties of datatypes. More...
 
- Static Protected Member Functions inherited from Datatype
static uint8 hashName (const string &nm)
 Produce a data-type id by hashing the type name. More...
 

Detailed Description

Datatype object representing a pointer.

Member Function Documentation

◆ compare()

int4 TypePointer::compare ( const Datatype op,
int4  level 
) const
virtual

Compare for functional equivalence.

Compare this with another data-type. 0 (equality) means the data-types are functionally equivalent (even if names differ) Smaller types come earlier. More specific types come earlier.

Parameters
opis the data-type to compare with this
levelis maximum level to descend when recursively comparing
Returns
negative, 0, positive depending on ordering of types

Reimplemented from Datatype.

References Datatype::compare(), Datatype::metatype, ptrto, Datatype::size, and wordsize.

◆ compareDependency()

int4 TypePointer::compareDependency ( const Datatype op) const
virtual

Compare for storage in tree structure.

Ordering of data-types for the main TypeFactory container. Comparison only goes down one-level in the component structure, before just comparing pointers.

Parameters
opis the data-type to compare with this
Returns
negative, 0, positive depending on ordering of types

Reimplemented from Datatype.

References Datatype::metatype, ptrto, Datatype::size, and wordsize.

◆ printRaw()

void TypePointer::printRaw ( ostream &  s) const
virtual

Print a description of the type to stream.

Print a raw description of the type to stream. Intended for debugging. Not intended to produce parsable C.

Parameters
sis the output stream

Reimplemented from Datatype.

References Datatype::printRaw(), and ptrto.

◆ restoreXml()

void TypePointer::restoreXml ( const Element el,
TypeFactory typegrp 
)
protectedvirtual

Restore data-type from XML.

Restore a Datatype object from an XML element

Parameters
elis the XML element
typegrpis the underlying TypeFactory that will hold the new object

Reimplemented from Datatype.

Referenced by TypeFactory::restoreXmlTypeNoRef().

◆ saveXml()

void TypePointer::saveXml ( ostream &  s) const
virtual

Serialize the data-type to XML.

Write out a formal description of the data-type as an XML <type> tag. For composite data-types, the description goes down one level, describing the component types only by reference.

Parameters
sis the stream to write to

Reimplemented from Datatype.

References a_v_i(), Datatype::saveXmlBasic(), and wordsize.


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