Remove redundant code, eliminate one static variable
Signed-off-by: Heikki Orsila <heikki.orsila@iki.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Heikki Orsila committed
May 24, 2008 at 01:43 UTC
633f43e1f774337ce1d8b8cf01c5bbe82b086ef6
1 file changed
+17
-27
sha1_file.c
+17
-27
@@ -176,21 +176,22 @@ char *sha1_file_name(const unsigned char *sha1)
176
return base;
177
}
178
179
-char *sha1_pack_name(const unsigned char *sha1)
179
+static char *sha1_get_pack_name(const unsigned char *sha1,
180
+ char **name, char **base)
181
{
182
static const char hex[] = "0123456789abcdef";
182
- static char *name, *base, *buf;
183
+ char *buf;
184
int i;
185
185
- if (!base) {
186
+ if (!*base) {
187
const char *sha1_file_directory = get_object_directory();
188
int len = strlen(sha1_file_directory);
188
- base = xmalloc(len + 60);
189
- sprintf(base, "%s/pack/pack-1234567890123456789012345678901234567890.pack", sha1_file_directory);
190
- name = base + len + 11;
189
+ *base = xmalloc(len + 60);
190
+ sprintf(*base, "%s/pack/pack-1234567890123456789012345678901234567890.pack", sha1_file_directory);
191
+ *name = *base + len + 11;
192
}
193
193
- buf = name;
194
+ buf = *name;
195
196
for (i = 0; i < 20; i++) {
197
unsigned int val = *sha1++;
@@ -198,32 +199,21 @@ char *sha1_pack_name(const unsigned char *sha1)
199
*buf++ = hex[val & 0xf];
200
}
201
201
- return base;
202
+ return *base;
203
}
204
204
-char *sha1_pack_index_name(const unsigned char *sha1)
205
+char *sha1_pack_name(const unsigned char *sha1)
206
{
206
- static const char hex[] = "0123456789abcdef";
207
- static char *name, *base, *buf;
208
- int i;
209
-
210
- if (!base) {
211
- const char *sha1_file_directory = get_object_directory();
212
- int len = strlen(sha1_file_directory);
213
- base = xmalloc(len + 60);
214
- sprintf(base, "%s/pack/pack-1234567890123456789012345678901234567890.idx", sha1_file_directory);
215
- name = base + len + 11;
216
- }
207
+ static char *name, *base;
208
218
- buf = name;
209
+ return sha1_get_pack_name(sha1, &name, &base);
210
+}
211
220
- for (i = 0; i < 20; i++) {
221
- unsigned int val = *sha1++;
222
- *buf++ = hex[val >> 4];
223
- *buf++ = hex[val & 0xf];
224
- }
212
+char *sha1_pack_index_name(const unsigned char *sha1)
213
+{
214
+ static char *name, *base;
215
226
- return base;
216
+ return sha1_get_pack_name(sha1, &name, &base);
217
}
218
219
struct alternate_object_database *alt_odb_list;