@@ -107,7 +107,7 @@ TypeRefBuilder::normalizeReflectionName(RemoteRef<char> reflectionName) {
107107 if (!mangling.isSuccess ()) {
108108 return {};
109109 }
110- return mangling.result ();
110+ return std::move ( mangling.result () );
111111 }
112112 }
113113
@@ -194,16 +194,16 @@ const TypeRef *TypeRefBuilder::lookupSuperclass(const TypeRef *TR) {
194194
195195RemoteRef<FieldDescriptor>
196196TypeRefBuilder::getFieldTypeInfo (const TypeRef *TR) {
197- std::string MangledName;
197+ const std::string * MangledName;
198198 if (auto N = dyn_cast<NominalTypeRef>(TR))
199- MangledName = N->getMangledName ();
199+ MangledName = & N->getMangledName ();
200200 else if (auto BG = dyn_cast<BoundGenericTypeRef>(TR))
201- MangledName = BG->getMangledName ();
201+ MangledName = & BG->getMangledName ();
202202 else
203203 return nullptr ;
204204
205205 // Try the cache.
206- auto Found = FieldTypeInfoCache.find (MangledName);
206+ auto Found = FieldTypeInfoCache.find (* MangledName);
207207 if (Found != FieldTypeInfoCache.end ())
208208 return Found->second ;
209209
@@ -216,13 +216,13 @@ TypeRefBuilder::getFieldTypeInfo(const TypeRef *TR) {
216216 continue ;
217217 auto CandidateMangledName = readTypeRef (FD, FD->MangledTypeName );
218218 if (auto NormalizedName = normalizeReflectionName (CandidateMangledName))
219- FieldTypeInfoCache[*NormalizedName] = FD;
219+ FieldTypeInfoCache[std::move ( *NormalizedName) ] = FD;
220220 }
221221
222222 // Since we're done with the current ReflectionInfo, increment early in
223223 // case we get a cache hit.
224224 ++FirstUnprocessedReflectionInfoIndex;
225- Found = FieldTypeInfoCache.find (MangledName);
225+ Found = FieldTypeInfoCache.find (* MangledName);
226226 if (Found != FieldTypeInfoCache.end ())
227227 return Found->second ;
228228 }
0 commit comments