|
13 | 13 | \frameLocal{1}{\frameMainLocalOne} |
14 | 14 | \end{funFrame} |
15 | 15 |
|
16 | | - |
17 | 16 | \ifthenelse{\step<13}{ |
18 | 17 | \trapFrame[name=ExnC,handler=\trapExnCHandler,next=\trapExnCNext,color=WildStrawberry]{\trapExnCBegin} |
19 | 18 | \coordAtRight{exnCtrap}{\exnHandlerAfterExnCTrap} |
|
47 | 46 | \frameLocal{1}{\frameDefinitelyLocalOne} |
48 | 47 | \end{funFrame} |
49 | 48 |
|
50 | | -\begin{funFrame}[name=raise,color=SeaGreen]{\frameCamlRaiseExnBegin}{\frameCamlRaiseExnEnd} |
| 49 | +\begin{funFrame}[color=SeaGreen]{\frameCamlRaiseExnBegin}{\frameCamlRaiseExnEnd} |
51 | 50 | \funReturnAddr{\frameCamlRaiseExnRetaddr} |
52 | 51 | \end{funFrame} |
53 | 52 | }{} |
|
66 | 65 | }{} |
67 | 66 |
|
68 | 67 |
|
69 | | -\coordinate (bottom) at ($(stackBL) + (0,-0.5)$); |
| 68 | +\coordinate (bottom) at ($(stackBL) + (0,-0.25)$); |
70 | 69 |
|
71 | 70 |
|
72 | | -\ifthenelse{\step=1}{ |
| 71 | +\ifthenelse{\step=1 \or \step=2}{ |
73 | 72 | \domainStateBacktrace[pos=(bottom),yFactor=0.03]{\exnHandlerAfterExnATrap}{}{0} |
74 | 73 | \draw [->,>=latex] (exnHandlerRight.east) to [out=0,in=0] (exnAtrap.east); |
75 | 74 | }{} |
|
90 | 89 | \draw [->,>=latex] (exnHandlerRight.east) to [out=0,in=0] (exnCtrap.east); |
91 | 90 | }{} |
92 | 91 |
|
93 | | -\ifthenelse{\step>1 \and \step<5}{ |
94 | | -\showRegister{sp}{\stashBacktraceArgSPvA} |
95 | | -\showRegister{trapsp}{\stashBacktraceArgTrapSPvA} |
96 | | -}{} |
97 | | - |
98 | 92 | \ifthenelse{\step=2}{ |
99 | | -\domainStateBacktrace[pos=(bottom),yFactor=0.03]{\exnHandlerAfterExnATrap}{}{0} |
| 93 | +\showRegister{sp}{\stashBacktraceArgSPvA} |
100 | 94 | }{} |
101 | 95 |
|
102 | 96 | \ifthenelse{\step=3}{ |
103 | 97 | \domainStateBacktrace[pos=(bottom),yFactor=0.03]{\exnHandlerAfterExnATrap}{\nextFrameDescrPCvA}{1} |
104 | | -\showRegister[color=OrangeRed,offset=-0.5]{sp}{\nextFrameDescrSPvA} |
| 98 | +\showRegister{sp}{\nextFrameDescrSPvA} |
105 | 99 | }{} |
106 | 100 |
|
107 | 101 | \ifthenelse{\step=4}{ |
108 | 102 | \domainStateBacktrace[pos=(bottom),yFactor=0.03]{\exnHandlerAfterExnATrap}{\nextFrameDescrPCvB}{2} |
109 | | -\showRegister[color=OrangeRed,offset=-0.8]{sp}{\nextFrameDescrSPvB} |
| 103 | +\showRegister[opacity=0.25]{sp}{\nextFrameDescrSPvA} |
| 104 | +\showRegister[offset=-0.8]{sp}{\nextFrameDescrSPvB} |
110 | 105 | }{} |
111 | 106 |
|
| 107 | +% Drawing order matter for z-index trapsp/sp |
| 108 | +\ifthenelse{\step>1 \and \step<5}{ |
| 109 | +\showRegister{trapsp}{\stashBacktraceArgTrapSPvA} |
| 110 | +\showRegister{pc}{\frameCamlRaiseExnEnd} |
| 111 | +}{} |
112 | 112 |
|
113 | | -\ifthenelse{\step>6 \and \step<10}{ |
114 | | -\showRegister{sp}{\stashBacktraceArgSPvB} |
115 | | -\showRegister{trapsp}{\stashBacktraceArgTrapSPvB} |
| 113 | +\ifthenelse{\step>5 \and \step<10}{ |
| 114 | +\draw [->,>=latex] (exnHandlerRight.east) to [out=0,in=0] (exnBtrap.east); |
116 | 115 | }{} |
117 | 116 |
|
118 | 117 | \ifthenelse{\step=7}{ |
119 | 118 | \domainStateBacktrace[pos=(bottom),yFactor=0.03]{\exnHandlerAfterExnPopTrapvA}{\nextFrameDescrPCvC}{3} |
120 | | -\showRegister[color=OrangeRed,offset=-0.5]{sp}{\nextFrameDescrSPvC} |
| 119 | +\showRegister[opacity=0.25]{sp}{\stashBacktraceArgSPvB} |
| 120 | +\showRegister{sp}{\nextFrameDescrSPvC} |
121 | 121 | }{} |
122 | 122 |
|
123 | 123 | \ifthenelse{\step=8}{ |
124 | 124 | \domainStateBacktrace[pos=(bottom),yFactor=0.03]{\exnHandlerAfterExnPopTrapvA}{\nextFrameDescrPCvD}{4} |
125 | | -\showRegister[color=OrangeRed]{sp}{\nextFrameDescrSPvD} |
| 125 | +\showRegister[opacity=0.25]{sp}{\nextFrameDescrSPvC} |
| 126 | +\showRegister{sp}{\nextFrameDescrSPvD} |
126 | 127 | }{} |
127 | 128 |
|
128 | 129 | \ifthenelse{\step=9}{ |
129 | 130 | \domainStateBacktrace[pos=(bottom),yFactor=0.03]{\exnHandlerAfterExnPopTrapvA}{\nextFrameDescrPCvE}{5} |
130 | | -\showRegister[color=OrangeRed,offset=-0.8]{sp}{\nextFrameDescrSPvE} |
| 131 | +\showRegister[opacity=0.25]{sp}{\nextFrameDescrSPvD} |
| 132 | +\showRegister[offset=-0.8]{sp}{\nextFrameDescrSPvE} |
| 133 | +}{} |
| 134 | + |
| 135 | +% Drawing order matter for z-index trapsp/sp |
| 136 | +\ifthenelse{\step>6 \and \step<10}{ |
| 137 | +\showRegister{pc}{\frameCamlReraiseExnEndvB} |
| 138 | +\showRegister{trapsp}{\stashBacktraceArgTrapSPvB} |
131 | 139 | }{} |
132 | 140 |
|
133 | 141 |
|
134 | 142 | \ifthenelse{\step>10 \and \step<13}{ |
135 | | -\showRegister[offset=-0.5]{trapsp}{\stashBacktraceArgTrapSPvC} |
136 | | -\showRegister{sp}{\stashBacktraceArgSPvC} |
| 143 | +\draw [->,>=latex] (exnHandlerRight.east) to [out=0,in=0] (exnCtrap.east); |
137 | 144 | }{} |
138 | 145 |
|
139 | 146 | \ifthenelse{\step=12}{ |
140 | 147 | \domainStateBacktrace[pos=(bottom),yFactor=0.03]{\exnHandlerAfterExnPopTrapvB}{\nextFrameDescrPCvF}{\stashBacktraceBacktracePosvC} |
141 | 148 | }{} |
142 | 149 |
|
| 150 | +% Drawing order matter for z-index trapsp/sp |
| 151 | +\ifthenelse{\step>10 \and \step<13}{ |
| 152 | +\showRegister{pc}{\frameCamlReraiseExnEndvC} |
| 153 | +\showRegister{trapsp}{\stashBacktraceArgTrapSPvC} |
| 154 | +}{} |
| 155 | + |
143 | 156 |
|
144 | 157 | \end{stackDiagram} |
145 | 158 | \end{tikzpicture} |
0 commit comments