equal
deleted
inserted
replaced
1206 int revcount) |
1206 int revcount) |
1207 { |
1207 { |
1208 const bitmask allseen = (1ull << revcount) - 1; |
1208 const bitmask allseen = (1ull << revcount) - 1; |
1209 const bitmask poison = 1ull << revcount; |
1209 const bitmask poison = 1ull << revcount; |
1210 PyObject *gca = PyList_New(0); |
1210 PyObject *gca = PyList_New(0); |
1211 int i, v, interesting, left; |
1211 int i, v, interesting; |
1212 int maxrev = -1; |
1212 int maxrev = -1; |
1213 long sp; |
1213 long sp; |
1214 bitmask *seen; |
1214 bitmask *seen; |
1215 |
1215 |
1216 if (gca == NULL) |
1216 if (gca == NULL) |
1228 } |
1228 } |
1229 |
1229 |
1230 for (i = 0; i < revcount; i++) |
1230 for (i = 0; i < revcount; i++) |
1231 seen[revs[i]] = 1ull << i; |
1231 seen[revs[i]] = 1ull << i; |
1232 |
1232 |
1233 interesting = left = revcount; |
1233 interesting = revcount; |
1234 |
1234 |
1235 for (v = maxrev; v >= 0 && interesting; v--) { |
1235 for (v = maxrev; v >= 0 && interesting; v--) { |
1236 long sv = seen[v]; |
1236 long sv = seen[v]; |
1237 int parents[2]; |
1237 int parents[2]; |
1238 |
1238 |
1249 Py_DECREF(obj); |
1249 Py_DECREF(obj); |
1250 goto bail; |
1250 goto bail; |
1251 } |
1251 } |
1252 sv |= poison; |
1252 sv |= poison; |
1253 for (i = 0; i < revcount; i++) { |
1253 for (i = 0; i < revcount; i++) { |
1254 if (revs[i] == v) { |
1254 if (revs[i] == v) |
1255 if (--left <= 1) |
1255 goto done; |
1256 goto done; |
|
1257 break; |
|
1258 } |
|
1259 } |
1256 } |
1260 } |
1257 } |
1261 } |
1258 } |
1262 index_get_parents(self, v, parents); |
1259 index_get_parents(self, v, parents); |
1263 |
1260 |