@@ -294,14 +294,14 @@ LazyReexportsManager::Create(EmitTrampolinesFn EmitTrampolines,
294
294
295
295
Error LazyReexportsManager::handleRemoveResources (JITDylib &JD, ResourceKey K) {
296
296
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 ()) {
299
299
auto &ReentryAddrs = I->second ;
300
300
for (auto &ReentryAddr : ReentryAddrs) {
301
301
assert (CallThroughs.count (ReentryAddr) && " CallTrhough missing" );
302
302
CallThroughs.erase (ReentryAddr);
303
303
}
304
- KeyToReentryAddr .erase (I);
304
+ KeyToReentryAddrs .erase (I);
305
305
}
306
306
});
307
307
return Error::success ();
@@ -310,19 +310,18 @@ Error LazyReexportsManager::handleRemoveResources(JITDylib &JD, ResourceKey K) {
310
310
void LazyReexportsManager::handleTransferResources (JITDylib &JD,
311
311
ResourceKey DstK,
312
312
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 ()) {
317
317
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);
320
320
} 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);
326
325
}
327
326
}
328
327
}
@@ -390,7 +389,7 @@ void LazyReexportsManager::emitRedirectableSymbols(
390
389
const auto &ReentryPoint = (*ReentryPoints)[I++];
391
390
CallThroughs[ReentryPoint.getAddress ()] = {Name, AI.Aliasee ,
392
391
&MR->getTargetJITDylib ()};
393
- KeyToReentryAddr [K].push_back (ReentryPoint.getAddress ());
392
+ KeyToReentryAddrs [K].push_back (ReentryPoint.getAddress ());
394
393
}
395
394
})) {
396
395
MR->getExecutionSession ().reportError (std::move (Err));
0 commit comments