Repository navigation
Commit 7f0576b
authored
throw instead of wrapping the 16-bit UID counter in Tree::getUID (#1244)
Tree::getUID() incremented a uint16_t counter, so in a tree with more than
65535 nodes the UIDs wrapped around and collided (node 65537 got the UID of
node 1), confusing Groot2, the loggers and TreeObserver, which key on UID.
It now throws a RuntimeError when the counter is exhausted.
Behavior change: creating a tree with more than 65535 nodes now throws
instead of succeeding with duplicate UIDs.1 parent d20f628 commit 7f0576b
2 files changed
Lines changed: 24 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| 23 | + | |
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
| |||
755 | 756 | | |
756 | 757 | | |
757 | 758 | | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
758 | 766 | | |
759 | 767 | | |
760 | 768 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
795 | 796 | | |
796 | 797 | | |
797 | 798 | | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
| 803 | + | |
| 804 | + | |
| 805 | + | |
| 806 | + | |
| 807 | + | |
| 808 | + | |
| 809 | + | |
| 810 | + | |
| 811 | + | |
| 812 | + | |
| 813 | + | |
0 commit comments