Lines Matching refs:istate

16 static void assert_index_minimum(struct index_state *istate, size_t pos)  in assert_index_minimum()  argument
18 if (pos > istate->cache_nr) in assert_index_minimum()
20 (uintmax_t)pos, istate->cache_nr); in assert_index_minimum()
25 struct index_state *istate = (struct index_state *)is; in fsmonitor_ewah_callback() local
28 assert_index_minimum(istate, pos + 1); in fsmonitor_ewah_callback()
30 ce = istate->cache[pos]; in fsmonitor_ewah_callback()
50 int read_fsmonitor_extension(struct index_state *istate, const void *data, in read_fsmonitor_extension() argument
77 istate->fsmonitor_last_update = strbuf_detach(&last_update, NULL); in read_fsmonitor_extension()
88 istate->fsmonitor_dirty = fsmonitor_dirty; in read_fsmonitor_extension()
90 if (!istate->split_index) in read_fsmonitor_extension()
91 assert_index_minimum(istate, istate->fsmonitor_dirty->bit_size); in read_fsmonitor_extension()
94 istate->fsmonitor_last_update); in read_fsmonitor_extension()
97 istate->fsmonitor_last_update); in read_fsmonitor_extension()
101 void fill_fsmonitor_bitmap(struct index_state *istate) in fill_fsmonitor_bitmap() argument
104 istate->fsmonitor_dirty = ewah_new(); in fill_fsmonitor_bitmap()
105 for (i = 0; i < istate->cache_nr; i++) { in fill_fsmonitor_bitmap()
106 if (istate->cache[i]->ce_flags & CE_REMOVE) in fill_fsmonitor_bitmap()
108 else if (!(istate->cache[i]->ce_flags & CE_FSMONITOR_VALID)) in fill_fsmonitor_bitmap()
109 ewah_set(istate->fsmonitor_dirty, i - skipped); in fill_fsmonitor_bitmap()
113 void write_fsmonitor_extension(struct strbuf *sb, struct index_state *istate) in write_fsmonitor_extension() argument
120 if (!istate->split_index) in write_fsmonitor_extension()
121 assert_index_minimum(istate, istate->fsmonitor_dirty->bit_size); in write_fsmonitor_extension()
126 strbuf_addstr(sb, istate->fsmonitor_last_update); in write_fsmonitor_extension()
133 ewah_serialize_strbuf(istate->fsmonitor_dirty, sb); in write_fsmonitor_extension()
134 ewah_free(istate->fsmonitor_dirty); in write_fsmonitor_extension()
135 istate->fsmonitor_dirty = NULL; in write_fsmonitor_extension()
142 istate->fsmonitor_last_update); in write_fsmonitor_extension()
145 istate->fsmonitor_last_update); in write_fsmonitor_extension()
194 static void fsmonitor_refresh_callback(struct index_state *istate, char *name) in fsmonitor_refresh_callback() argument
208 for (i = 0; i < istate->cache_nr; i++) { in fsmonitor_refresh_callback()
209 if (istate->cache[i]->ce_flags & CE_FSMONITOR_VALID && in fsmonitor_refresh_callback()
210 starts_with(istate->cache[i]->name, name)) in fsmonitor_refresh_callback()
211 istate->cache[i]->ce_flags &= ~CE_FSMONITOR_VALID; in fsmonitor_refresh_callback()
216 int pos = index_name_pos(istate, name, strlen(name)); in fsmonitor_refresh_callback()
219 struct cache_entry *ce = istate->cache[pos]; in fsmonitor_refresh_callback()
229 untracked_cache_invalidate_path(istate, name, 0); in fsmonitor_refresh_callback()
232 void refresh_fsmonitor(struct index_state *istate) in refresh_fsmonitor() argument
242 if (!core_fsmonitor || istate->fsmonitor_has_run_once) in refresh_fsmonitor()
247 istate->fsmonitor_has_run_once = 1; in refresh_fsmonitor()
263 if (istate->fsmonitor_last_update) { in refresh_fsmonitor()
266 istate->fsmonitor_last_update, &query_result); in refresh_fsmonitor()
296 istate->fsmonitor_last_update, &query_result); in refresh_fsmonitor()
311 fsmonitor_refresh_callback(istate, buf + bol); in refresh_fsmonitor()
315 fsmonitor_refresh_callback(istate, buf + bol); in refresh_fsmonitor()
318 if (istate->untracked) in refresh_fsmonitor()
319 istate->untracked->use_fsmonitor = 1; in refresh_fsmonitor()
326 for (i = 0; i < istate->cache_nr; i++) { in refresh_fsmonitor()
327 if (istate->cache[i]->ce_flags & CE_FSMONITOR_VALID) { in refresh_fsmonitor()
329 istate->cache[i]->ce_flags &= ~CE_FSMONITOR_VALID; in refresh_fsmonitor()
335 istate->cache_changed |= FSMONITOR_CHANGED; in refresh_fsmonitor()
337 if (istate->untracked) in refresh_fsmonitor()
338 istate->untracked->use_fsmonitor = 0; in refresh_fsmonitor()
343 FREE_AND_NULL(istate->fsmonitor_last_update); in refresh_fsmonitor()
344 istate->fsmonitor_last_update = strbuf_detach(&last_update_token, NULL); in refresh_fsmonitor()
370 static void initialize_fsmonitor_last_update(struct index_state *istate) in initialize_fsmonitor_last_update() argument
375 istate->fsmonitor_last_update = strbuf_detach(&last_update, NULL); in initialize_fsmonitor_last_update()
378 void add_fsmonitor(struct index_state *istate) in add_fsmonitor() argument
382 if (!istate->fsmonitor_last_update) { in add_fsmonitor()
384 istate->cache_changed |= FSMONITOR_CHANGED; in add_fsmonitor()
385 initialize_fsmonitor_last_update(istate); in add_fsmonitor()
388 for (i = 0; i < istate->cache_nr; i++) in add_fsmonitor()
389 istate->cache[i]->ce_flags &= ~CE_FSMONITOR_VALID; in add_fsmonitor()
392 if (istate->untracked) { in add_fsmonitor()
393 add_untracked_cache(istate); in add_fsmonitor()
394 istate->untracked->use_fsmonitor = 1; in add_fsmonitor()
398 refresh_fsmonitor(istate); in add_fsmonitor()
402 void remove_fsmonitor(struct index_state *istate) in remove_fsmonitor() argument
404 if (istate->fsmonitor_last_update) { in remove_fsmonitor()
406 istate->cache_changed |= FSMONITOR_CHANGED; in remove_fsmonitor()
407 FREE_AND_NULL(istate->fsmonitor_last_update); in remove_fsmonitor()
411 void tweak_fsmonitor(struct index_state *istate) in tweak_fsmonitor() argument
416 if (istate->fsmonitor_dirty) { in tweak_fsmonitor()
419 for (i = 0; i < istate->cache_nr; i++) { in tweak_fsmonitor()
420 istate->cache[i]->ce_flags |= CE_FSMONITOR_VALID; in tweak_fsmonitor()
424 assert_index_minimum(istate, istate->fsmonitor_dirty->bit_size); in tweak_fsmonitor()
425 ewah_each_bit(istate->fsmonitor_dirty, fsmonitor_ewah_callback, istate); in tweak_fsmonitor()
427 refresh_fsmonitor(istate); in tweak_fsmonitor()
430 ewah_free(istate->fsmonitor_dirty); in tweak_fsmonitor()
431 istate->fsmonitor_dirty = NULL; in tweak_fsmonitor()
438 remove_fsmonitor(istate); in tweak_fsmonitor()
441 add_fsmonitor(istate); in tweak_fsmonitor()