Helgrind's event-map garbage collector hammers VG_(OSetGen_Next).

Import an optimisation from the analogous function in m_wordfm.c.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8795
This commit is contained in:
Julian Seward 2008-11-20 23:33:05 +00:00
parent 468ca56d5d
commit 96b2ce64c0

View File

@ -751,15 +751,17 @@ void* VG_(OSetGen_Next)(AvlTree* t)
// keeping this loop in this simpler form.
while (stackPop(t, &n, &i)) {
switch (i) {
case 1:
case 1: case_1:
stackPush(t, n, 2);
if (n->left) stackPush(t, n->left, 1);
/* if (n->left) stackPush(t, n->left, 1); */
if (n->left) { n = n->left; goto case_1; }
break;
case 2:
stackPush(t, n, 3);
return elem_of_node(n);
case 3:
if (n->right) stackPush(t, n->right, 1);
/* if (n->right) stackPush(t, n->right, 1); */
if (n->right) { n = n->right; goto case_1; }
break;
}
}