Skip to content

Commit 31e5e4c

Browse files
author
Joel Dice
committed
fix GC safety bugs in leftRotate and rightRotate
1 parent 7eef2e7 commit 31e5e4c

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

src/util.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@ treeFind(Thread* t, object old, object node, object sentinal,
104104
object
105105
leftRotate(Thread* t, object n)
106106
{
107+
PROTECT(t, n);
108+
107109
object child = cloneTreeNode(t, treeNodeRight(t, n));
108110
set(t, n, TreeNodeRight, treeNodeLeft(t, child));
109111
set(t, child, TreeNodeLeft, n);
@@ -113,6 +115,8 @@ leftRotate(Thread* t, object n)
113115
object
114116
rightRotate(Thread* t, object n)
115117
{
118+
PROTECT(t, n);
119+
116120
object child = cloneTreeNode(t, treeNodeLeft(t, n));
117121
set(t, n, TreeNodeLeft, treeNodeRight(t, child));
118122
set(t, child, TreeNodeRight, n);

0 commit comments

Comments
 (0)