equal
deleted
inserted
replaced
305 for (pos = 0; PyDict_Next(map, &pos, &k, &v); ) { |
305 for (pos = 0; PyDict_Next(map, &pos, &k, &v); ) { |
306 uint32_t mode, size, mtime; |
306 uint32_t mode, size, mtime; |
307 Py_ssize_t len, l; |
307 Py_ssize_t len, l; |
308 PyObject *o; |
308 PyObject *o; |
309 char *s, *t; |
309 char *s, *t; |
310 int err; |
|
311 |
310 |
312 if (!PyTuple_Check(v) || PyTuple_GET_SIZE(v) != 4) { |
311 if (!PyTuple_Check(v) || PyTuple_GET_SIZE(v) != 4) { |
313 PyErr_SetString(PyExc_TypeError, "expected a 4-tuple"); |
312 PyErr_SetString(PyExc_TypeError, "expected a 4-tuple"); |
314 goto bail; |
313 goto bail; |
315 } |
314 } |
317 if (PyString_AsStringAndSize(o, &s, &l) == -1 || l != 1) { |
316 if (PyString_AsStringAndSize(o, &s, &l) == -1 || l != 1) { |
318 PyErr_SetString(PyExc_TypeError, "expected one byte"); |
317 PyErr_SetString(PyExc_TypeError, "expected one byte"); |
319 goto bail; |
318 goto bail; |
320 } |
319 } |
321 *p++ = *s; |
320 *p++ = *s; |
322 err = getintat(v, 1, &mode); |
321 if (getintat(v, 1, &mode) == -1) |
323 err |= getintat(v, 2, &size); |
322 goto bail; |
324 err |= getintat(v, 3, &mtime); |
323 if (getintat(v, 2, &size) == -1) |
325 if (err) |
324 goto bail; |
|
325 if (getintat(v, 3, &mtime) == -1) |
326 goto bail; |
326 goto bail; |
327 if (*s == 'n' && mtime == (uint32_t)now) { |
327 if (*s == 'n' && mtime == (uint32_t)now) { |
328 /* See dirstate.py:write for why we do this. */ |
328 /* See dirstate.py:write for why we do this. */ |
329 if (PyDict_SetItem(map, k, dirstate_unset) == -1) |
329 if (PyDict_SetItem(map, k, dirstate_unset) == -1) |
330 goto bail; |
330 goto bail; |