Merge 868a73c707
into e48216e4a8
This commit is contained in:
commit
9b8dd698af
|
@ -554,13 +554,29 @@ alias UpdatePairCollection = TTree!(UpdatePair, UpdatePairCollectionAllocator, f
|
||||||
void generateUpdatePairs(DSymbol* oldSymbol, DSymbol* newSymbol, ref UpdatePairCollection results)
|
void generateUpdatePairs(DSymbol* oldSymbol, DSymbol* newSymbol, ref UpdatePairCollection results)
|
||||||
{
|
{
|
||||||
results.insert(UpdatePair(oldSymbol, newSymbol));
|
results.insert(UpdatePair(oldSymbol, newSymbol));
|
||||||
foreach (part; oldSymbol.parts[])
|
foreach (part; oldSymbol.opSlice())
|
||||||
{
|
{
|
||||||
auto temp = DSymbol(oldSymbol.name);
|
bool has = false;
|
||||||
auto r = newSymbol.parts.equalRange(SymbolOwnership(&temp));
|
DSymbol* r = null;
|
||||||
if (r.empty)
|
foreach (newPart; newSymbol.opSlice())
|
||||||
continue;
|
{
|
||||||
generateUpdatePairs(part, r.front, results);
|
if(part == newPart)
|
||||||
|
{
|
||||||
|
has = true;
|
||||||
|
r = newPart;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (part.name == newPart.name && part.location == newPart.location)
|
||||||
|
{
|
||||||
|
has = true;
|
||||||
|
r = newPart;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!has) continue;
|
||||||
|
|
||||||
|
generateUpdatePairs(part, r, results);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue