File tree Expand file tree Collapse file tree 2 files changed +9
-2
lines changed Expand file tree Collapse file tree 2 files changed +9
-2
lines changed Original file line number Diff line number Diff line change @@ -507,7 +507,13 @@ class Demangler : public NodeFactory {
507
507
std::function<SymbolicReferenceResolver_t> resolver) {
508
508
SymbolicReferenceResolver = resolver;
509
509
}
510
-
510
+
511
+ // / Take the symbolic reference resolver.
512
+ std::function<SymbolicReferenceResolver_t> &&
513
+ takeSymbolicReferenceResolver () {
514
+ return std::move (SymbolicReferenceResolver);
515
+ }
516
+
511
517
// / Demangle the given symbol and return the parse tree.
512
518
// /
513
519
// / \param MangledName The mangled symbol string, which start with the
Original file line number Diff line number Diff line change @@ -1521,6 +1521,7 @@ class MetadataReader {
1521
1521
}
1522
1522
1523
1523
// Install our own symbolic reference resolver
1524
+ auto oldSymbolicReferenceResolver = dem.takeSymbolicReferenceResolver ();
1524
1525
dem.setSymbolicReferenceResolver ([&](SymbolicReferenceKind kind,
1525
1526
Directness directness,
1526
1527
int32_t offset,
@@ -1562,7 +1563,7 @@ class MetadataReader {
1562
1563
break ;
1563
1564
}
1564
1565
1565
- dem.setSymbolicReferenceResolver (nullptr );
1566
+ dem.setSymbolicReferenceResolver (std::move (oldSymbolicReferenceResolver) );
1566
1567
return result;
1567
1568
}
1568
1569
You can’t perform that action at this time.
0 commit comments