@@ -107,7 +107,7 @@ TypeRefBuilder::normalizeReflectionName(RemoteRef<char> reflectionName) {
107
107
if (!mangling.isSuccess ()) {
108
108
return {};
109
109
}
110
- return mangling.result ();
110
+ return std::move ( mangling.result () );
111
111
}
112
112
}
113
113
@@ -194,16 +194,16 @@ const TypeRef *TypeRefBuilder::lookupSuperclass(const TypeRef *TR) {
194
194
195
195
RemoteRef<FieldDescriptor>
196
196
TypeRefBuilder::getFieldTypeInfo (const TypeRef *TR) {
197
- std::string MangledName;
197
+ const std::string * MangledName;
198
198
if (auto N = dyn_cast<NominalTypeRef>(TR))
199
- MangledName = N->getMangledName ();
199
+ MangledName = & N->getMangledName ();
200
200
else if (auto BG = dyn_cast<BoundGenericTypeRef>(TR))
201
- MangledName = BG->getMangledName ();
201
+ MangledName = & BG->getMangledName ();
202
202
else
203
203
return nullptr ;
204
204
205
205
// Try the cache.
206
- auto Found = FieldTypeInfoCache.find (MangledName);
206
+ auto Found = FieldTypeInfoCache.find (* MangledName);
207
207
if (Found != FieldTypeInfoCache.end ())
208
208
return Found->second ;
209
209
@@ -216,13 +216,13 @@ TypeRefBuilder::getFieldTypeInfo(const TypeRef *TR) {
216
216
continue ;
217
217
auto CandidateMangledName = readTypeRef (FD, FD->MangledTypeName );
218
218
if (auto NormalizedName = normalizeReflectionName (CandidateMangledName))
219
- FieldTypeInfoCache[*NormalizedName] = FD;
219
+ FieldTypeInfoCache[std::move ( *NormalizedName) ] = FD;
220
220
}
221
221
222
222
// Since we're done with the current ReflectionInfo, increment early in
223
223
// case we get a cache hit.
224
224
++FirstUnprocessedReflectionInfoIndex;
225
- Found = FieldTypeInfoCache.find (MangledName);
225
+ Found = FieldTypeInfoCache.find (* MangledName);
226
226
if (Found != FieldTypeInfoCache.end ())
227
227
return Found->second ;
228
228
}
0 commit comments