@matheusbsbs / matheus-bagliano / commits / 68b4cfbc91
Fork 0

vcs-svn: Rename dirent pool to build on Windows

dirent is #define’d to mingw_dirent in compat/mingw.h, with the result that obj_pool_gen(dirent, struct repo_dirent, 4096) creates functions with names like mingw_dirent_alloc and references to dirent_alloc go unresolved. Rename the functions to dent_* to avoid this problem. Reported-by: Johannes Sixt <j6t@kdbg.org> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jonathan Nieder committed Aug 13, 2010 at 19:01 UTC 68b4cfbc91583b43e96d38b8d7efc8e6690589ad
1 file changed +73 -73
vcs-svn/repo_tree.c
+73 -73
@@ -30,7 +30,7 @@ struct repo_commit {
30 /* Memory pools for commit, dir and dirent */
31 obj_pool_gen(commit, struct repo_commit, 4096)
32 obj_pool_gen(dir, struct repo_dir, 4096)
33 -obj_pool_gen(dirent, struct repo_dirent, 4096)
33 +obj_pool_gen(dent, struct repo_dirent, 4096)
34
35 static uint32_t active_commit;
36 static uint32_t mark;
@@ -38,7 +38,7 @@ static uint32_t mark;
38 static int repo_dirent_name_cmp(const void *a, const void *b);
39
40 /* Treap for directory entries */
41 -trp_gen(static, dirent_, struct repo_dirent, children, dirent, repo_dirent_name_cmp);
41 +trp_gen(static, dent_, struct repo_dirent, children, dent, repo_dirent_name_cmp);
42
43 uint32_t next_blob_mark(void)
44 {
@@ -52,27 +52,27 @@ static struct repo_dir *repo_commit_root_dir(struct repo_commit *commit)
52
53 static struct repo_dirent *repo_first_dirent(struct repo_dir *dir)
54 {
55 - return dirent_first(&dir->entries);
55 + return dent_first(&dir->entries);
56 }
57
58 static int repo_dirent_name_cmp(const void *a, const void *b)
59 {
60 - const struct repo_dirent *dirent1 = a, *dirent2 = b;
61 - uint32_t a_offset = dirent1->name_offset;
62 - uint32_t b_offset = dirent2->name_offset;
60 + const struct repo_dirent *dent1 = a, *dent2 = b;
61 + uint32_t a_offset = dent1->name_offset;
62 + uint32_t b_offset = dent2->name_offset;
63 return (a_offset > b_offset) - (a_offset < b_offset);
64 }
65
66 -static int repo_dirent_is_dir(struct repo_dirent *dirent)
66 +static int repo_dirent_is_dir(struct repo_dirent *dent)
67 {
68 - return dirent != NULL && dirent->mode == REPO_MODE_DIR;
68 + return dent != NULL && dent->mode == REPO_MODE_DIR;
69 }
70
71 -static struct repo_dir *repo_dir_from_dirent(struct repo_dirent *dirent)
71 +static struct repo_dir *repo_dir_from_dirent(struct repo_dirent *dent)
72 {
73 - if (!repo_dirent_is_dir(dirent))
73 + if (!repo_dirent_is_dir(dent))
74 return NULL;
75 - return dir_pointer(dirent->content_offset);
75 + return dir_pointer(dent->content_offset);
76 }
77
78 static struct repo_dir *repo_clone_dir(struct repo_dir *orig_dir)
@@ -90,19 +90,19 @@ static struct repo_dir *repo_clone_dir(struct repo_dir *orig_dir)
90 static struct repo_dirent *repo_read_dirent(uint32_t revision, uint32_t *path)
91 {
92 uint32_t name = 0;
93 - struct repo_dirent *key = dirent_pointer(dirent_alloc(1));
93 + struct repo_dirent *key = dent_pointer(dent_alloc(1));
94 struct repo_dir *dir = NULL;
95 - struct repo_dirent *dirent = NULL;
95 + struct repo_dirent *dent = NULL;
96 dir = repo_commit_root_dir(commit_pointer(revision));
97 while (~(name = *path++)) {
98 key->name_offset = name;
99 - dirent = dirent_search(&dir->entries, key);
100 - if (dirent == NULL || !repo_dirent_is_dir(dirent))
99 + dent = dent_search(&dir->entries, key);
100 + if (dent == NULL || !repo_dirent_is_dir(dent))
101 break;
102 - dir = repo_dir_from_dirent(dirent);
102 + dir = repo_dir_from_dirent(dent);
103 }
104 - dirent_free(1);
105 - return dirent;
104 + dent_free(1);
105 + return dent;
106 }
107
108 static void repo_write_dirent(uint32_t *path, uint32_t mode,
@@ -111,7 +111,7 @@ static void repo_write_dirent(uint32_t *path, uint32_t mode,
111 uint32_t name, revision, dir_o = ~0, parent_dir_o = ~0;
112 struct repo_dir *dir;
113 struct repo_dirent *key;
114 - struct repo_dirent *dirent = NULL;
114 + struct repo_dirent *dent = NULL;
115 revision = active_commit;
116 dir = repo_commit_root_dir(commit_pointer(revision));
117 dir = repo_clone_dir(dir);
@@ -119,52 +119,52 @@ static void repo_write_dirent(uint32_t *path, uint32_t mode,
119 while (~(name = *path++)) {
120 parent_dir_o = dir_offset(dir);
121
122 - key = dirent_pointer(dirent_alloc(1));
122 + key = dent_pointer(dent_alloc(1));
123 key->name_offset = name;
124
125 - dirent = dirent_search(&dir->entries, key);
126 - if (dirent == NULL)
127 - dirent = key;
125 + dent = dent_search(&dir->entries, key);
126 + if (dent == NULL)
127 + dent = key;
128 else
129 - dirent_free(1);
129 + dent_free(1);
130
131 - if (dirent == key) {
132 - dirent->mode = REPO_MODE_DIR;
133 - dirent->content_offset = 0;
134 - dirent_insert(&dir->entries, dirent);
131 + if (dent == key) {
132 + dent->mode = REPO_MODE_DIR;
133 + dent->content_offset = 0;
134 + dent_insert(&dir->entries, dent);
135 }
136
137 - if (dirent_offset(dirent) < dirent_pool.committed) {
138 - dir_o = repo_dirent_is_dir(dirent) ?
139 - dirent->content_offset : ~0;
140 - dirent_remove(&dir->entries, dirent);
141 - dirent = dirent_pointer(dirent_alloc(1));
142 - dirent->name_offset = name;
143 - dirent->mode = REPO_MODE_DIR;
144 - dirent->content_offset = dir_o;
145 - dirent_insert(&dir->entries, dirent);
137 + if (dent_offset(dent) < dent_pool.committed) {
138 + dir_o = repo_dirent_is_dir(dent) ?
139 + dent->content_offset : ~0;
140 + dent_remove(&dir->entries, dent);
141 + dent = dent_pointer(dent_alloc(1));
142 + dent->name_offset = name;
143 + dent->mode = REPO_MODE_DIR;
144 + dent->content_offset = dir_o;
145 + dent_insert(&dir->entries, dent);
146 }
147
148 - dir = repo_dir_from_dirent(dirent);
148 + dir = repo_dir_from_dirent(dent);
149 dir = repo_clone_dir(dir);
150 - dirent->content_offset = dir_offset(dir);
150 + dent->content_offset = dir_offset(dir);
151 }
152 - if (dirent == NULL)
152 + if (dent == NULL)
153 return;
154 - dirent->mode = mode;
155 - dirent->content_offset = content_offset;
154 + dent->mode = mode;
155 + dent->content_offset = content_offset;
156 if (del && ~parent_dir_o)
157 - dirent_remove(&dir_pointer(parent_dir_o)->entries, dirent);
157 + dent_remove(&dir_pointer(parent_dir_o)->entries, dent);
158 }
159
160 uint32_t repo_copy(uint32_t revision, uint32_t *src, uint32_t *dst)
161 {
162 uint32_t mode = 0, content_offset = 0;
163 - struct repo_dirent *src_dirent;
164 - src_dirent = repo_read_dirent(revision, src);
165 - if (src_dirent != NULL) {
166 - mode = src_dirent->mode;
167 - content_offset = src_dirent->content_offset;
163 + struct repo_dirent *src_dent;
164 + src_dent = repo_read_dirent(revision, src);
165 + if (src_dent != NULL) {
166 + mode = src_dent->mode;
167 + content_offset = src_dent->content_offset;
168 repo_write_dirent(dst, mode, content_offset, 0);
169 }
170 return mode;
@@ -178,10 +178,10 @@ void repo_add(uint32_t *path, uint32_t mode, uint32_t blob_mark)
178 uint32_t repo_replace(uint32_t *path, uint32_t blob_mark)
179 {
180 uint32_t mode = 0;
181 - struct repo_dirent *src_dirent;
182 - src_dirent = repo_read_dirent(active_commit, path);
183 - if (src_dirent != NULL) {
184 - mode = src_dirent->mode;
181 + struct repo_dirent *src_dent;
182 + src_dent = repo_read_dirent(active_commit, path);
183 + if (src_dent != NULL) {
184 + mode = src_dent->mode;
185 repo_write_dirent(path, mode, blob_mark, 0);
186 }
187 return mode;
@@ -189,10 +189,10 @@ uint32_t repo_replace(uint32_t *path, uint32_t blob_mark)
189
190 void repo_modify(uint32_t *path, uint32_t mode, uint32_t blob_mark)
191 {
192 - struct repo_dirent *src_dirent;
193 - src_dirent = repo_read_dirent(active_commit, path);
194 - if (src_dirent != NULL && blob_mark == 0)
195 - blob_mark = src_dirent->content_offset;
192 + struct repo_dirent *src_dent;
193 + src_dent = repo_read_dirent(active_commit, path);
194 + if (src_dent != NULL && blob_mark == 0)
195 + blob_mark = src_dent->content_offset;
196 repo_write_dirent(path, mode, blob_mark, 0);
197 }
198
@@ -203,13 +203,13 @@ void repo_delete(uint32_t *path)
203
204 static void repo_git_add_r(uint32_t depth, uint32_t *path, struct repo_dir *dir);
205
206 -static void repo_git_add(uint32_t depth, uint32_t *path, struct repo_dirent *dirent)
206 +static void repo_git_add(uint32_t depth, uint32_t *path, struct repo_dirent *dent)
207 {
208 - if (repo_dirent_is_dir(dirent))
209 - repo_git_add_r(depth, path, repo_dir_from_dirent(dirent));
208 + if (repo_dirent_is_dir(dent))
209 + repo_git_add_r(depth, path, repo_dir_from_dirent(dent));
210 else
211 fast_export_modify(depth, path,
212 - dirent->mode, dirent->content_offset);
212 + dent->mode, dent->content_offset);
213 }
214
215 static void repo_git_add_r(uint32_t depth, uint32_t *path, struct repo_dir *dir)
@@ -218,7 +218,7 @@ static void repo_git_add_r(uint32_t depth, uint32_t *path, struct repo_dir *dir)
218 while (de) {
219 path[depth] = de->name_offset;
220 repo_git_add(depth + 1, path, de);
221 - de = dirent_next(&dir->entries, de);
221 + de = dent_next(&dir->entries, de);
222 }
223 }
224
@@ -233,13 +233,13 @@ static void repo_diff_r(uint32_t depth, uint32_t *path, struct repo_dir *dir1,
233 if (de1->name_offset < de2->name_offset) {
234 path[depth] = de1->name_offset;
235 fast_export_delete(depth + 1, path);
236 - de1 = dirent_next(&dir1->entries, de1);
236 + de1 = dent_next(&dir1->entries, de1);
237 continue;
238 }
239 if (de1->name_offset > de2->name_offset) {
240 path[depth] = de2->name_offset;
241 repo_git_add(depth + 1, path, de2);
242 - de2 = dirent_next(&dir2->entries, de2);
242 + de2 = dent_next(&dir2->entries, de2);
243 continue;
244 }
245 path[depth] = de1->name_offset;
@@ -257,18 +257,18 @@ static void repo_diff_r(uint32_t depth, uint32_t *path, struct repo_dir *dir1,
257 fast_export_delete(depth + 1, path);
258 repo_git_add(depth + 1, path, de2);
259 }
260 - de1 = dirent_next(&dir1->entries, de1);
261 - de2 = dirent_next(&dir2->entries, de2);
260 + de1 = dent_next(&dir1->entries, de1);
261 + de2 = dent_next(&dir2->entries, de2);
262 }
263 while (de1) {
264 path[depth] = de1->name_offset;
265 fast_export_delete(depth + 1, path);
266 - de1 = dirent_next(&dir1->entries, de1);
266 + de1 = dent_next(&dir1->entries, de1);
267 }
268 while (de2) {
269 path[depth] = de2->name_offset;
270 repo_git_add(depth + 1, path, de2);
271 - de2 = dirent_next(&dir2->entries, de2);
271 + de2 = dent_next(&dir2->entries, de2);
272 }
273 }
274
@@ -286,7 +286,7 @@ void repo_commit(uint32_t revision, uint32_t author, char *log, uint32_t uuid,
286 uint32_t url, unsigned long timestamp)
287 {
288 fast_export_commit(revision, author, log, uuid, url, timestamp);
289 - dirent_commit();
289 + dent_commit();
290 dir_commit();
291 active_commit = commit_alloc(1);
292 commit_pointer(active_commit)->root_dir_offset =
@@ -297,10 +297,10 @@ static void mark_init(void)
297 {
298 uint32_t i;
299 mark = 0;
300 - for (i = 0; i < dirent_pool.size; i++)
301 - if (!repo_dirent_is_dir(dirent_pointer(i)) &&
302 - dirent_pointer(i)->content_offset > mark)
303 - mark = dirent_pointer(i)->content_offset;
300 + for (i = 0; i < dent_pool.size; i++)
301 + if (!repo_dirent_is_dir(dent_pointer(i)) &&
302 + dent_pointer(i)->content_offset > mark)
303 + mark = dent_pointer(i)->content_offset;
304 mark++;
305 }
306
@@ -325,5 +325,5 @@ void repo_reset(void)
325 pool_reset();
326 commit_reset();
327 dir_reset();
328 - dirent_reset();
328 + dent_reset();
329 }