@@ -294,14 +294,14 @@ LazyReexportsManager::Create(EmitTrampolinesFn EmitTrampolines,
294294
295295Error LazyReexportsManager::handleRemoveResources (JITDylib &JD, ResourceKey K) {
296296 JD.getExecutionSession ().runSessionLocked ([&]() {
297- auto I = KeyToReentryAddr .find (K);
298- if (I != KeyToReentryAddr .end ()) {
297+ auto I = KeyToReentryAddrs .find (K);
298+ if (I != KeyToReentryAddrs .end ()) {
299299 auto &ReentryAddrs = I->second ;
300300 for (auto &ReentryAddr : ReentryAddrs) {
301301 assert (CallThroughs.count (ReentryAddr) && " CallTrhough missing" );
302302 CallThroughs.erase (ReentryAddr);
303303 }
304- KeyToReentryAddr .erase (I);
304+ KeyToReentryAddrs .erase (I);
305305 }
306306 });
307307 return Error::success ();
@@ -310,19 +310,18 @@ Error LazyReexportsManager::handleRemoveResources(JITDylib &JD, ResourceKey K) {
310310void LazyReexportsManager::handleTransferResources (JITDylib &JD,
311311 ResourceKey DstK,
312312 ResourceKey SrcK) {
313- auto I = KeyToReentryAddr .find (SrcK);
314- if (I != KeyToReentryAddr .end ()) {
315- auto J = KeyToReentryAddr .find (DstK);
316- if (J == KeyToReentryAddr .end ()) {
313+ auto I = KeyToReentryAddrs .find (SrcK);
314+ if (I != KeyToReentryAddrs .end ()) {
315+ auto J = KeyToReentryAddrs .find (DstK);
316+ if (J == KeyToReentryAddrs .end ()) {
317317 auto Tmp = std::move (I->second );
318- KeyToReentryAddr .erase (I);
319- KeyToReentryAddr [DstK] = std::move (Tmp);
318+ KeyToReentryAddrs .erase (I);
319+ KeyToReentryAddrs [DstK] = std::move (Tmp);
320320 } else {
321- auto &SrcReentryAddrs = I->second ;
322- auto &DstReentryAddrs = J->second ;
323- for (auto &ReentryAddr : SrcReentryAddrs)
324- DstReentryAddrs.push_back (std::move (ReentryAddr));
325- KeyToReentryAddr.erase (I);
321+ auto &SrcAddrs = I->second ;
322+ auto &DstAddrs = J->second ;
323+ DstAddrs.insert (DstAddrs.end (), SrcAddrs.begin (), SrcAddrs.end ());
324+ KeyToReentryAddrs.erase (I);
326325 }
327326 }
328327}
@@ -390,7 +389,7 @@ void LazyReexportsManager::emitRedirectableSymbols(
390389 const auto &ReentryPoint = (*ReentryPoints)[I++];
391390 CallThroughs[ReentryPoint.getAddress ()] = {Name, AI.Aliasee ,
392391 &MR->getTargetJITDylib ()};
393- KeyToReentryAddr [K].push_back (ReentryPoint.getAddress ());
392+ KeyToReentryAddrs [K].push_back (ReentryPoint.getAddress ());
394393 }
395394 })) {
396395 MR->getExecutionSession ().reportError (std::move (Err));
0 commit comments