diff options
author | Junio C Hamano <gitster@pobox.com> | 2008-01-21 00:44:50 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-01-22 21:26:40 -0800 |
commit | 6d91da6d3c170d026f2d7f79bbd7b657a6908cc8 (patch) | |
tree | adb7b336b0e7b0b06269fa250491ef5b17c1dbf2 | |
parent | 077c48df8a72b046a2f562fedffa1c3d3a73a4e2 (diff) | |
download | git-6d91da6d3c170d026f2d7f79bbd7b657a6908cc8.tar.gz git-6d91da6d3c170d026f2d7f79bbd7b657a6908cc8.tar.xz |
read-cache.c: introduce is_racy_timestamp() helper
This moves a common boolean expression into a helper function,
and makes the comparison between filesystem timestamp and index
timestamp done in the function in line with the other places.
st.st_mtime should be casted to (unsigned int) when compared to
an index timestamp ce_mtime.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | read-cache.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/read-cache.c b/read-cache.c index 8f5d02afa..07abd5d7e 100644 --- a/read-cache.c +++ b/read-cache.c @@ -181,6 +181,12 @@ static int ce_match_stat_basic(struct cache_entry *ce, struct stat *st) return changed; } +static int is_racy_timestamp(struct index_state *istate, struct cache_entry *ce) +{ + return (istate->timestamp && + ((unsigned int)istate->timestamp) <= ce->ce_mtime); +} + int ie_match_stat(struct index_state *istate, struct cache_entry *ce, struct stat *st, unsigned int options) @@ -214,9 +220,7 @@ int ie_match_stat(struct index_state *istate, * whose mtime are the same as the index file timestamp more * carefully than others. */ - if (!changed && - istate->timestamp && - istate->timestamp <= ce->ce_mtime) { + if (!changed && is_racy_timestamp(istate, ce)) { if (assume_racy_is_modified) changed |= DATA_CHANGED; else @@ -1233,8 +1237,7 @@ int write_index(struct index_state *istate, int newfd) struct cache_entry *ce = cache[i]; if (ce->ce_flags & CE_REMOVE) continue; - if (istate->timestamp && - istate->timestamp <= ce->ce_mtime) + if (is_racy_timestamp(istate, ce)) ce_smudge_racily_clean_entry(ce); if (ce_write_entry(&c, newfd, ce) < 0) return -1; |