| 108 | //========================================================================== |
| 109 | |
| 110 | FieldDesc *FindField(PContainerType *cls, const char * string) |
| 111 | { |
| 112 | int min = 0, max = FieldTable.Size() - 1; |
| 113 | const char * cname = cls ? cls->TypeName.GetChars() : ""; |
| 114 | |
| 115 | while (min <= max) |
| 116 | { |
| 117 | int mid = (min + max) / 2; |
| 118 | int lexval = CompareClassNames(cname, FieldTable[mid]); |
| 119 | if (lexval == 0) lexval = stricmp(string, FieldTable[mid].FieldName); |
| 120 | if (lexval == 0) |
| 121 | { |
| 122 | return &FieldTable[mid]; |
| 123 | } |
| 124 | else if (lexval > 0) |
| 125 | { |
| 126 | min = mid + 1; |
| 127 | } |
| 128 | else |
| 129 | { |
| 130 | max = mid - 1; |
| 131 | } |
| 132 | } |
| 133 | return nullptr; |
| 134 | } |
| 135 | |
| 136 | |
| 137 | //========================================================================== |
no test coverage detected