12 DbgKnownVTables.InsertUnique( std::make_pair( &vtable->
Type, vtable ) );
14 if ( DbgKnownVTables.find( &vtable->
Type ) != DbgKnownVTables.end() ) {
15 ALIB_ERROR(
"BOXING",
"Double instantiation of VTable of Type: \"{}\"",
21 DbgKnownVTables.insert(std::make_pair( &vtable->
Type, vtable ) );
26 DbgKnownVTablesArray.InsertUnique(std::make_pair( &vtable->
ElementType, vtable ) );
28 if ( DbgKnownVTablesArray.find( &vtable->
ElementType ) != DbgKnownVTablesArray.end() ) {
29 ALIB_ERROR(
"BOXING",
"Double instantiation of VTable of Type: \"{}[]\"",
35 DbgKnownVTablesArray.insert(std::make_pair( &vtable->
ElementType, vtable ) );
46 while( (idx=
string.IndexOf(search, startIndex) ) >= 0 )
47 string.Delete( idx, search.Length() );
54 A_CHAR(
"alib::boxing::" ),
59 auto startLength= result.
Length();
61 result << vtable->
Type;
#define ALIB_ERROR(domain,...)
#define ALIB_LOCK_RECURSIVE_WITH(lock)
TAString & DeleteStart(integer regionLength)
constexpr integer Length() const
bool StartsWith(const TString &needle) const
std::vector< alib::String > RemovableNamespaces
See function #".RemoveNamespaces". Pre-initialized with "alib::".
void DbgRegisterVTable(detail::VTable *vtable, detail::VTable::DbgFactoryType productionType)
AString & RemoveNamespaces(AString &string, integer startIndex)
void typeName(const detail::VTable *vtable, AString &result)
RecursiveLock GLOBAL_ALLOCATOR_LOCK
lang::integer integer
Type alias in namespace #"%alib".
strings::TAString< character, lang::HeapAllocator > AString
Type alias in namespace #"%alib".
The custom function hash.
const std::type_info & ElementType
DbgFactoryType DbgProduction
Debug information.
const std::type_info & Type