equal
deleted
inserted
replaced
233 line *l; |
233 line *l; |
234 Py_ssize_t consumed; |
234 Py_ssize_t consumed; |
235 PyObject *ret = NULL, *path = NULL, *hash = NULL, *flags = NULL; |
235 PyObject *ret = NULL, *path = NULL, *hash = NULL, *flags = NULL; |
236 l = lmiter_nextline((lmIter *)o); |
236 l = lmiter_nextline((lmIter *)o); |
237 if (!l) { |
237 if (!l) { |
238 goto bail; |
238 goto done; |
239 } |
239 } |
240 pl = pathlen(l); |
240 pl = pathlen(l); |
241 path = PyString_FromStringAndSize(l->start, pl); |
241 path = PyString_FromStringAndSize(l->start, pl); |
242 hash = nodeof(l); |
242 hash = nodeof(l); |
243 consumed = pl + 41; |
243 consumed = pl + 41; |
244 flags = PyString_FromStringAndSize(l->start + consumed, |
244 flags = PyString_FromStringAndSize(l->start + consumed, |
245 l->len - consumed - 1); |
245 l->len - consumed - 1); |
246 if (!path || !hash || !flags) { |
246 if (!path || !hash || !flags) { |
247 goto bail; |
247 goto done; |
248 } |
248 } |
249 ret = PyTuple_Pack(3, path, hash, flags); |
249 ret = PyTuple_Pack(3, path, hash, flags); |
250 bail: |
250 done: |
251 Py_XDECREF(path); |
251 Py_XDECREF(path); |
252 Py_XDECREF(hash); |
252 Py_XDECREF(hash); |
253 Py_XDECREF(flags); |
253 Py_XDECREF(flags); |
254 return ret; |
254 return ret; |
255 } |
255 } |