<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal;
font-family:"Calibri","sans-serif";
color:windowtext;}
span.EmailStyle18
{mso-style-type:personal-reply;
font-family:"Calibri","sans-serif";
color:#1F497D;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:3.0cm 2.0cm 3.0cm 2.0cm;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="DA" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="color:#1F497D">Dear all,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">just a short update on the issue:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">Replacing the line<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">lemon::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Dijkstra</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><lemon::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">ReverseDigraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:blue">const</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">
</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Digraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">>,
</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Digraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">ArcMap</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:blue">int</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">>
> dijkstra(lemon::reverseDigraph(dg), am_distance);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">by the two lines<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;mso-fareast-language:DA">lemon::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;mso-fareast-language:DA">ReverseDigraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;mso-fareast-language:DA"><</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:blue;mso-fareast-language:DA">const</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;mso-fareast-language:DA">
</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;mso-fareast-language:DA">Digraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black;mso-fareast-language:DA">> rev_dg = lemon::reverseDigraph(dg);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black;mso-fareast-language:DA">lemon::</span><span style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;mso-fareast-language:DA">Dijkstra</span><span style="font-size:9.5pt;font-family:Consolas;color:black;mso-fareast-language:DA"><lemon::</span><span style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;mso-fareast-language:DA">ReverseDigraph</span><span style="font-size:9.5pt;font-family:Consolas;color:black;mso-fareast-language:DA"><</span><span style="font-size:9.5pt;font-family:Consolas;color:blue;mso-fareast-language:DA">const</span><span style="font-size:9.5pt;font-family:Consolas;color:black;mso-fareast-language:DA">
</span><span style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;mso-fareast-language:DA">Digraph</span><span style="font-size:9.5pt;font-family:Consolas;color:black;mso-fareast-language:DA">>,
</span><span style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;mso-fareast-language:DA">Digraph</span><span style="font-size:9.5pt;font-family:Consolas;color:black;mso-fareast-language:DA">::</span><span style="font-size:9.5pt;font-family:Consolas;color:#2B91AF;mso-fareast-language:DA">ArcMap</span><span style="font-size:9.5pt;font-family:Consolas;color:black;mso-fareast-language:DA"><</span><span style="font-size:9.5pt;font-family:Consolas;color:blue;mso-fareast-language:DA">int</span><span style="font-size:9.5pt;font-family:Consolas;color:black;mso-fareast-language:DA">>
> dijkstra(rev_dg, am_distance);<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">fixes the problem, i.e. no segmentation fault occurs anymore. I would, however, not expect it to make any difference.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">Best,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D">David<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="color:#1F497D"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-language:DA">From:</span></b><span lang="EN-US" style="font-size:10.0pt;font-family:"Tahoma","sans-serif";mso-fareast-language:DA"> Lemon-user [mailto:lemon-user-bounces@lemon.cs.elte.hu]
<b>On Behalf Of </b>David Franz Koza<br>
<b>Sent:</b> 6. juni 2017 23:08<br>
<b>To:</b> lemon-user@lemon.cs.elte.hu<br>
<b>Subject:</b> [Lemon-user] Issues using ReverseGraph adaptor - bug?<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-US">Dear all,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">I have encountered some issues while using the ReverseGraph adaptor. The code compiles and works well on Windows using MSVC. When compiling on Linux (using gcc 7.1.0) it works well if I compile without any optimization
flag. If I compile the same code using any optimization flag (e.g. –O1) I get a segmentation fault. You find the code and valgrind (leak-check=yes) output below. Am I using it incorrectly or is this a bug?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:gray">#include</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">
</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#A31515"><lemon/smart_graph.h></span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:gray">#include</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">
</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#A31515"><lemon/adaptors.h></span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:gray">#include</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">
</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#A31515"><lemon/maps.h></span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:gray">#include</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">
</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#A31515"><lemon/dijkstra.h></span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:blue">typedef</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"> lemon::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">SmartDigraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">
</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Digraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">;<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:blue">int</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"> main() {<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Digraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"> dg;<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:green">// Add nodes</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Digraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Node</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">
u = dg.addNode();<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Digraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Node</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">
v = dg.addNode();<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Digraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Node</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">
w = dg.addNode();<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Digraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Node</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">
x = dg.addNode();<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:green">// Add arcs</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Digraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Arc</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">
a = dg.addArc(u, v);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Digraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Arc</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">
b = dg.addArc(u, w);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Digraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Arc</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">
c = dg.addArc(u, x);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Digraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Arc</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">
d = dg.addArc(v, w);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="DE" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Digraph</span><span lang="DE" style="font-size:9.5pt;font-family:Consolas;color:black">::</span><span lang="DE" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Arc</span><span lang="DE" style="font-size:9.5pt;font-family:Consolas;color:black">
e = dg.addArc(v, x);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Digraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Arc</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">
f = dg.addArc(w, u);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Digraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Arc</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">
g = dg.addArc(w, v);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Digraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Arc</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">
h = dg.addArc(x, u);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Digraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Arc</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">
i = dg.addArc(x, w);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:green">// Define node and arc maps</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Digraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">NodeMap</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:blue">bool</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">>
nm_first(dg, </span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:blue">true</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Digraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">ArcMap</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:blue">bool</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">>
am_first(dg, </span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:blue">true</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Digraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">ArcMap</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:blue">int</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">>
am_distance(dg, 0);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">lemon::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Dijkstra</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><lemon::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">ReverseDigraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:blue">const</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">
</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Digraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">>,
</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">Digraph</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">::</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:#2B91AF">ArcMap</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:blue">int</span><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black">>
> dijkstra(lemon::reverseDigraph(dg), am_distance);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="EN-US" style="font-size:9.5pt;font-family:Consolas;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black">dijkstra.run(u);<o:p></o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:9.5pt;font-family:Consolas;color:blue">return</span><span style="font-size:9.5pt;font-family:Consolas;color:black"> 0;<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black">}<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:9.5pt;font-family:Consolas;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Valgrind output (part of it):<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== Use of uninitialised value of size 8<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== at 0x4E39470: pthread_mutex_lock (in /lib64/libpthread-2.12.so)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== by 0x404490: lemon::Dijkstra<lemon::ReverseDigraph<lemon::SmartDigraph const>, lemon::DigraphExtender<lemon::SmartDigraphBase>::ArcMap<int>, lemon::DijkstraDefaultTraits<lemon::ReverseDigraph<lemon::SmartDigraph
const>, lemon::DigraphExtender<lemon::SmartDigraphBase>::ArcMap<int> > >::run(lemon::SmartDigraphBase::Node) (lock.h:42)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== by 0x4016A8: main (Source.cpp:43)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== Use of uninitialised value of size 8<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== at 0x4E38F73: __pthread_mutex_lock_full (in /lib64/libpthread-2.12.so)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== by 0x404490: lemon::Dijkstra<lemon::ReverseDigraph<lemon::SmartDigraph const>, lemon::DigraphExtender<lemon::SmartDigraphBase>::ArcMap<int>, lemon::DijkstraDefaultTraits<lemon::ReverseDigraph<lemon::SmartDigraph
const>, lemon::DigraphExtender<lemon::SmartDigraphBase>::ArcMap<int> > >::run(lemon::SmartDigraphBase::Node) (lock.h:42)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== by 0x4016A8: main (Source.cpp:43)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== Use of uninitialised value of size 8<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== at 0x404496: lemon::Dijkstra<lemon::ReverseDigraph<lemon::SmartDigraph const>, lemon::DigraphExtender<lemon::SmartDigraphBase>::ArcMap<int>, lemon::DijkstraDefaultTraits<lemon::ReverseDigraph<lemon::SmartDigraph
const>, lemon::DigraphExtender<lemon::SmartDigraphBase>::ArcMap<int> > >::run(lemon::SmartDigraphBase::Node) (alteration_notifier.h:337)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== by 0x4016A8: main (Source.cpp:43)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== Invalid read of size 8<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== at 0x50F1E90: std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*) (list.cc:131)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== by 0x403FB8: _ZNSt7__cxx114listIPN5lemon18AlterationNotifierINS1_15DigraphExtenderINS1_16SmartDigraphBaseEEENS4_4NodeEE12ObserverBaseESaIS9_EE7emplaceIJS9_EEESt14_List_iteratorIS9_ESt20_List_const_iteratorIS9_EDpOT_
(list.tcc:92)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== by 0x4044A7: lemon::Dijkstra<lemon::ReverseDigraph<lemon::SmartDigraph const>, lemon::DigraphExtender<lemon::SmartDigraphBase>::ArcMap<int>, lemon::DijkstraDefaultTraits<lemon::ReverseDigraph<lemon::SmartDigraph
const>, lemon::DigraphExtender<lemon::SmartDigraphBase>::ArcMap<int> > >::run(lemon::SmartDigraphBase::Node) (stl_list.h:1215)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== by 0x4016A8: main (Source.cpp:43)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== Address 0xffffff30e9000008 is not stack'd, malloc'd or (recently) free'd<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== Process terminating with default action of signal 11 (SIGSEGV)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== Access not within mapped region at address 0xFFFFFF30E9000008<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== at 0x50F1E90: std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*) (list.cc:131)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== by 0x403FB8: _ZNSt7__cxx114listIPN5lemon18AlterationNotifierINS1_15DigraphExtenderINS1_16SmartDigraphBaseEEENS4_4NodeEE12ObserverBaseESaIS9_EE7emplaceIJS9_EEESt14_List_iteratorIS9_ESt20_List_const_iteratorIS9_EDpOT_
(list.tcc:92)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== by 0x4044A7: lemon::Dijkstra<lemon::ReverseDigraph<lemon::SmartDigraph const>, lemon::DigraphExtender<lemon::SmartDigraphBase>::ArcMap<int>, lemon::DijkstraDefaultTraits<lemon::ReverseDigraph<lemon::SmartDigraph
const>, lemon::DigraphExtender<lemon::SmartDigraphBase>::ArcMap<int> > >::run(lemon::SmartDigraphBase::Node) (stl_list.h:1215)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== by 0x4016A8: main (Source.cpp:43)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== If you believe this happened as a result of a stack<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== overflow in your program's main thread (unlikely but<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== possible), you can try to increase the size of the<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== main thread stack using the --main-stacksize= flag.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== The main thread stack size used in this run was 10485760.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== HEAP SUMMARY:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== in use at exit: 73,188 bytes in 11 blocks<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== total heap usage: 17 allocs, 6 frees, 73,452 bytes allocated<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== <o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== 24 bytes in 1 blocks are definitely lost in loss record 6 of 11<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== at 0x4C295BC: operator new(unsigned long) (vg_replace_malloc.c:298)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== by 0x403F9C: _ZNSt7__cxx114listIPN5lemon18AlterationNotifierINS1_15DigraphExtenderINS1_16SmartDigraphBaseEEENS4_4NodeEE12ObserverBaseESaIS9_EE7emplaceIJS9_EEESt14_List_iteratorIS9_ESt20_List_const_iteratorIS9_EDpOT_
(new_allocator.h:111)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== by 0x4044A7: lemon::Dijkstra<lemon::ReverseDigraph<lemon::SmartDigraph const>, lemon::DigraphExtender<lemon::SmartDigraphBase>::ArcMap<int>, lemon::DijkstraDefaultTraits<lemon::ReverseDigraph<lemon::SmartDigraph
const>, lemon::DigraphExtender<lemon::SmartDigraphBase>::ArcMap<int> > >::run(lemon::SmartDigraphBase::Node) (stl_list.h:1215)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">==13120== by 0x4016A8: main (Source.cpp:43)<o:p></o:p></span></p>
</div>
</body>
</html>