sym_id FieldLookup( sym_id prev, char *name, uint len, intstar4 *offset ) { //========================================================================== // Search for a field name. *offset = 0; return( LookupField( prev, name, len, offset ) ); }
mdFieldDef Binder::GetFieldDef(BinderFieldID id) { _ASSERTE(id != FIELD__NIL); _ASSERTE(id <= m_cFieldRIDs); if (m_pFieldRIDs[id-1] == 0) LookupField(id); return TokenFromRid(m_pFieldRIDs[id-1], mdtFieldDef); }
int wxOdbcResultSet::GetFieldLength(const wxString& strField) { int nIndex = LookupField(strField); if ( nIndex == -1 ) return -1; return GetFieldLength( nIndex ); }
static sym_id LookupField( sym_id field, char *name, uint len, intstar4 *offset ) { //============================================================== sym_id map; sym_id u_field; intstar4 size; intstar4 f_size; intstar4 f_offset; f_offset = 0; for(;;) { if( field == NULL ) return( NULL ); if( field->u.fd.typ == FT_UNION ) { size = 0; map = field->u.fd.xt.sym_record; while( map != NULL ) { u_field = LookupField( map->u.sd.fl.sym_fields, name, len, &f_size ); if( u_field != NULL ) { *offset = f_offset + f_size; return( u_field ); } if( size < map->u.sd.size ) { size = map->u.sd.size; } map = map->u.sd.link; } } else { if( field->u.fd.name_len == len ) { if( memcmp( name, &field->u.fd.name, len ) == 0 ) { *offset = f_offset; return( field ); } } if( field->u.fd.typ == FT_STRUCTURE ) { size = field->u.fd.xt.record->size; } else { size = field->u.fd.xt.size; } if( field->u.fd.dim_ext != NULL ) { size *= field->u.fd.dim_ext->num_elts; } } f_offset += size; field = field->u.fd.link; } }
FieldDesc *Binder::FetchField(BinderFieldID id) { THROWSCOMPLUSEXCEPTION(); _ASSERTE(id != FIELD__NIL); _ASSERTE(id <= m_cFieldRIDs); FieldDesc *pFD; if (m_pFieldRIDs[id-1] == 0) pFD = LookupField(id); else { pFD = RawGetField(id); pFD->GetMethodTableOfEnclosingClass()->CheckRestore(); } return pFD; }
static AstExpression CheckMemberAccess(AstExpression expr) { Type ty; Field fld; expr->kids[0] = CheckExpression(expr->kids[0]); if (expr->op == OP_MEMBER) { expr->kids[0] = Adjust(expr->kids[0], 0); ty = expr->kids[0]->ty; if (! IsRecordType(ty)) { REPORT_OP_ERROR; } expr->lvalue = expr->kids[0]->lvalue; } else { expr->kids[0] = Adjust(expr->kids[0], 1); ty = expr->kids[0]->ty; if (! (IsPtrType(ty) && IsRecordType(ty->bty))) { REPORT_OP_ERROR; } ty = ty->bty; expr->lvalue = 1; } fld = LookupField(Unqual(ty), expr->val.p); if (fld == NULL) { Error(&expr->coord, "struct or union member %s doesn't exsist", expr->val.p); expr->ty = T(INT); return expr; } expr->ty = Qualify(ty->qual, fld->ty); expr->val.p = fld; expr->bitfld = fld->bits != 0; return expr; }