CppInterOp
C++ Language Interoperability Layer
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
Cpp::VTableOverlay Struct Reference
Collaboration diagram for Cpp::VTableOverlay:
Collaboration graph
[legend]

Public Member Functions

 VTableOverlay (void **block, void **orig_vptr, void *inst, std::size_t n_extra)
 
 ~VTableOverlay ()
 
 VTableOverlay (const VTableOverlay &)=delete
 
VTableOverlayoperator= (const VTableOverlay &)=delete
 
void ** address_point () const
 
VTableOverlay ** hidden_slot () const
 

Static Public Member Functions

template<class To , class From >
static To BitCastFn (From f) noexcept
 
static void ** ReadVPtr (void *inst)
 
static void WriteVPtr (void *inst, void **new_vptr)
 

Public Attributes

void ** block
 
void ** original_vptr
 
void * inst
 
std::size_t n_extra_prefix_slots
 
bool dtor_fired = false
 
void(* orig_dtor )(void *) = nullptr
 
VTableOverlayDtorHook cleanup = nullptr
 
void * cleanup_data = nullptr
 

Detailed Description

Definition at line 2134 of file CppInterOp.cpp.

Constructor & Destructor Documentation

◆ VTableOverlay() [1/2]

Cpp::VTableOverlay::VTableOverlay ( void **  block,
void **  orig_vptr,
void *  inst,
std::size_t  n_extra 
)
inline

Definition at line 2146 of file CppInterOp.cpp.

References address_point(), hidden_slot(), inst, and WriteVPtr().

◆ ~VTableOverlay()

Cpp::VTableOverlay::~VTableOverlay ( )
inline

Definition at line 2155 of file CppInterOp.cpp.

References block, dtor_fired, inst, original_vptr, and WriteVPtr().

◆ VTableOverlay() [2/2]

Cpp::VTableOverlay::VTableOverlay ( const VTableOverlay )
delete

Member Function Documentation

◆ address_point()

void ** Cpp::VTableOverlay::address_point ( ) const
inline

Definition at line 2163 of file CppInterOp.cpp.

References block, Cpp::detail::kVTableOverlayPrefixSize, and n_extra_prefix_slots.

Referenced by VTableOverlay().

◆ BitCastFn()

template<class To , class From >
static To Cpp::VTableOverlay::BitCastFn ( From  f)
inlinestaticnoexcept

Definition at line 2173 of file CppInterOp.cpp.

◆ hidden_slot()

VTableOverlay ** Cpp::VTableOverlay::hidden_slot ( ) const
inline

Definition at line 2166 of file CppInterOp.cpp.

References block, and n_extra_prefix_slots.

Referenced by VTableOverlay().

◆ operator=()

VTableOverlay & Cpp::VTableOverlay::operator= ( const VTableOverlay )
delete

◆ ReadVPtr()

static void ** Cpp::VTableOverlay::ReadVPtr ( void *  inst)
inlinestatic

Definition at line 2180 of file CppInterOp.cpp.

References inst.

Referenced by Cpp::applyVTableOverlay(), and Cpp::cppinteropVTableOverlayDtorWrapper().

◆ WriteVPtr()

static void Cpp::VTableOverlay::WriteVPtr ( void *  inst,
void **  new_vptr 
)
inlinestatic

Definition at line 2183 of file CppInterOp.cpp.

References inst.

Referenced by VTableOverlay(), and ~VTableOverlay().

Member Data Documentation

◆ block

void** Cpp::VTableOverlay::block

Definition at line 2135 of file CppInterOp.cpp.

Referenced by address_point(), hidden_slot(), and ~VTableOverlay().

◆ cleanup

VTableOverlayDtorHook Cpp::VTableOverlay::cleanup = nullptr

Definition at line 2143 of file CppInterOp.cpp.

Referenced by Cpp::cppinteropVTableOverlayDtorWrapper().

◆ cleanup_data

void* Cpp::VTableOverlay::cleanup_data = nullptr

Definition at line 2144 of file CppInterOp.cpp.

Referenced by Cpp::cppinteropVTableOverlayDtorWrapper().

◆ dtor_fired

bool Cpp::VTableOverlay::dtor_fired = false

Definition at line 2139 of file CppInterOp.cpp.

Referenced by Cpp::cppinteropVTableOverlayDtorWrapper(), and ~VTableOverlay().

◆ inst

void* Cpp::VTableOverlay::inst

Definition at line 2137 of file CppInterOp.cpp.

Referenced by ReadVPtr(), VTableOverlay(), WriteVPtr(), and ~VTableOverlay().

◆ n_extra_prefix_slots

std::size_t Cpp::VTableOverlay::n_extra_prefix_slots

Definition at line 2138 of file CppInterOp.cpp.

Referenced by address_point(), and hidden_slot().

◆ orig_dtor

void(* Cpp::VTableOverlay::orig_dtor) (void *) = nullptr

Definition at line 2142 of file CppInterOp.cpp.

Referenced by Cpp::cppinteropVTableOverlayDtorWrapper().

◆ original_vptr

void** Cpp::VTableOverlay::original_vptr

Definition at line 2136 of file CppInterOp.cpp.

Referenced by ~VTableOverlay().


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