forked frompostgres/postgres
- Notifications
You must be signed in to change notification settings - Fork6
Commit931bf3e
committed
Fix a bug in pairing heap removal code.
After removal, the next_sibling pointer of a node was sometimes incorrectlyleft to point to another node in the heap, which meant that a node wassometimes linked twice into the heap. Surprisingly that didn't cause anycrashes in my testing, but it was clearly wrong and could easily segfaultin other scenarios.Also always keep the prev_or_parent pointer as NULL on the root node. Thatwas not a correctness issue AFAICS, but let's be tidy.Add a debugging function, to dump the contents of a pairing heap as astring. It's #ifdef'd out, as it's not used for anything in any normalcode, but it was highly useful in debugging this. Let's keep it handy forfurther reference.1 parentd17b6df commit931bf3e
2 files changed
+70
-0
lines changedLines changed: 59 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
70 | 70 |
| |
71 | 71 |
| |
72 | 72 |
| |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
73 | 77 |
| |
74 | 78 |
| |
75 | 79 |
| |
| |||
111 | 115 |
| |
112 | 116 |
| |
113 | 117 |
| |
| 118 | + | |
| 119 | + | |
114 | 120 |
| |
115 | 121 |
| |
116 | 122 |
| |
| |||
148 | 154 |
| |
149 | 155 |
| |
150 | 156 |
| |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
151 | 162 |
| |
152 | 163 |
| |
153 | 164 |
| |
| |||
272 | 283 |
| |
273 | 284 |
| |
274 | 285 |
| |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + |
Lines changed: 11 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
11 | 11 |
| |
12 | 12 |
| |
13 | 13 |
| |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
14 | 19 |
| |
15 | 20 |
| |
16 | 21 |
| |
| |||
78 | 83 |
| |
79 | 84 |
| |
80 | 85 |
| |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
81 | 92 |
| |
82 | 93 |
| |
83 | 94 |
| |
|
0 commit comments
Comments
(0)