pwr_sAttrRef wb_adrep::aref() { pwr_sAttrRef aref = pwr_cNAttrRef; aref.Objid = pwr_cNObjid; aref.Body = bix(); aref.Offset = m_offset; aref.Size = m_size; if ( m_flags & PWR_MASK_POINTER) aref.Flags.b.Indirect = 1; if ( m_flags & PWR_MASK_ARRAY) aref.Flags.b.Array = 1; if ( cdh_tidIsCid( m_tid)) aref.Flags.b.ObjectAttr = 1; if ( m_flags & PWR_MASK_CASTATTR) aref.Flags.b.CastAttr = 1; if ( m_flags & PWR_MASK_DISABLEATTR) aref.Flags.b.DisableAttr = 1; return aref; }
wb_adrep *wb_bdrep::super( pwr_tStatus *sts) { if ( bix() != pwr_eBix_rt) { *sts = LDH__NOSUCHATTR; return 0; } wb_orep *orep = m_orep->vrep()->first( sts, m_orep); if ( EVEN(*sts)) return 0; if ( cdh_NoCaseStrcmp( orep->name(), "Super") != 0) { *sts = LDH__NOSUCHATTR; orep->ref(); orep->unref(); return 0; } wb_adrep *adrep = new wb_adrep( *orep); return adrep; }