##// END OF EJS Templates
parsers: optimize filtered headrevs logic...
Durham Goode -
r28386:1c658391 default
parent child Browse files
Show More
@@ -1446,10 +1446,15 b' static PyObject *index_headrevs(indexObj'
1446 goto bail;
1446 goto bail;
1447 }
1447 }
1448
1448
1449 for (i = 0; i < len; i++) {
1449 for (i = len - 1; i >= 0; i--) {
1450 int isfiltered;
1450 int isfiltered;
1451 int parents[2];
1451 int parents[2];
1452
1452
1453 /* If nothead[i] == 1, it means we've seen an unfiltered child of this
1454 * node already, and therefore this node is not filtered. So we can skip
1455 * the expensive check_filter step.
1456 */
1457 if (nothead[i] != 1) {
1453 isfiltered = check_filter(filter, i);
1458 isfiltered = check_filter(filter, i);
1454 if (isfiltered == -1) {
1459 if (isfiltered == -1) {
1455 PyErr_SetString(PyExc_TypeError,
1460 PyErr_SetString(PyExc_TypeError,
@@ -1461,6 +1466,7 b' static PyObject *index_headrevs(indexObj'
1461 nothead[i] = 1;
1466 nothead[i] = 1;
1462 continue;
1467 continue;
1463 }
1468 }
1469 }
1464
1470
1465 if (index_get_parents(self, i, parents, (int)len - 1) < 0)
1471 if (index_get_parents(self, i, parents, (int)len - 1) < 0)
1466 goto bail;
1472 goto bail;
General Comments 0
You need to be logged in to leave comments. Login now