PTREE DataDtorObjPush( // START OF DTORABLE OBJECT PTREE expr, // - expression to be decorated TYPE type, // - type of object SYMBOL init_sym, // - symbol being initialized target_offset_t offset ) // - offset of object being initialized { TYPE dtor_type; // - type for dtor #ifndef NDEBUG if( PragDbgToggle.dump_data_dtor ) { printf( "DataDtorObjPush -- symbol %s\n" " -- offset %x\n" " -- " , DbgSymNameFull( init_sym ) , offset ); DumpFullType( type ); } #endif dtor_type = type; if( NULL != ArrayType( dtor_type ) ) { dtor_type = ArrayBaseType( dtor_type ); } CDoptDtorBuild( dtor_type ); FunctionHasRegistration(); return PtdObjPush( expr, type, init_sym, offset ); }
static CLASSINFO* getClassInfo( // GET CLASS INFO FOR GOOD ELEMENTAL TYPE TYPE type ) // - type { CLASSINFO* info; // - information for class TYPE artype; // - NULL or array type if( type == NULL ) { info = NULL; } else { artype = ArrayType( type ); if( artype != NULL ) { type = ArrayBaseType( artype ); } type = StructType( type ); if( type == NULL ) { info = NULL; } else { info = TypeClassInfo( type ); if( info->corrupted ) { info = NULL; } } } return( info ); }