Lines Matching refs:h
92 struct srcfile *h; in find_srcfile() local
97 hlist_for_each_entry (h, &srcfile_htab[hval], hash_nd) { in find_srcfile()
98 if (!strcmp(fn, h->fn)) { in find_srcfile()
100 list_del(&h->nd); in find_srcfile()
101 list_add(&h->nd, &srcfile_list); in find_srcfile()
102 return h; in find_srcfile()
110 h = list_entry(srcfile_list.prev, struct srcfile, nd); in find_srcfile()
111 free_srcfile(h); in find_srcfile()
120 h = malloc(sizeof(struct srcfile)); in find_srcfile()
121 if (!h) in find_srcfile()
124 h->fn = strdup(fn); in find_srcfile()
125 if (!h->fn) in find_srcfile()
128 h->maplen = st.st_size; in find_srcfile()
129 sz = (h->maplen + page_size - 1) & ~(page_size - 1); in find_srcfile()
130 h->map = mmap(NULL, sz, PROT_READ, MAP_SHARED, fd, 0); in find_srcfile()
132 if (h->map == (char *)-1) { in find_srcfile()
136 h->numlines = countlines(h->map, h->maplen); in find_srcfile()
137 h->lines = calloc(h->numlines, sizeof(char *)); in find_srcfile()
138 if (!h->lines) in find_srcfile()
140 fill_lines(h->lines, h->numlines, h->map, h->maplen); in find_srcfile()
141 list_add(&h->nd, &srcfile_list); in find_srcfile()
142 hlist_add_head(&h->hash_nd, &srcfile_htab[hval]); in find_srcfile()
143 map_total_sz += h->maplen; in find_srcfile()
145 return h; in find_srcfile()
148 munmap(h->map, sz); in find_srcfile()
150 zfree(&h->fn); in find_srcfile()
152 free(h); in find_srcfile()