| 1400 | } |
| 1401 | |
| 1402 | MField* MClass::GetField(const char* name) const |
| 1403 | { |
| 1404 | // Lookup for cached field |
| 1405 | for (int32 i = 0; i < _fields.Count(); i++) |
| 1406 | { |
| 1407 | if (_fields[i]->GetName() == name) |
| 1408 | return _fields[i]; |
| 1409 | } |
| 1410 | |
| 1411 | // Find mono field |
| 1412 | MonoClassField* field = mono_class_get_field_from_name(_monoClass, name); |
| 1413 | if (field == nullptr) |
| 1414 | return nullptr; |
| 1415 | |
| 1416 | // Create field |
| 1417 | auto mfield = New<MField>(field, name, (MClass*)this); |
| 1418 | _fields.Add(mfield); |
| 1419 | return mfield; |
| 1420 | } |
| 1421 | |
| 1422 | const Array<MField*>& MClass::GetFields() const |
| 1423 | { |
no test coverage detected