summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 6809557)
raw | patch | inline | side by side (parent: 6809557)
author | Christian Couder <chriscool@tuxfamily.org> | |
Fri, 23 Jan 2009 09:07:01 +0000 (10:07 +0100) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Mon, 1 Jun 2009 00:02:59 +0000 (17:02 -0700) |
This new function will replace "read_sha1_file". This latter function
becoming just a stub to call the former will a NULL "replacement"
argument.
This new function is needed because sometimes we need to use the
replacement sha1.
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
becoming just a stub to call the former will a NULL "replacement"
argument.
This new function is needed because sometimes we need to use the
replacement sha1.
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
cache.h | patch | blob | history | |
sha1_file.c | patch | blob | history |
index b8503ad91c3b13ccaf87a6f596d13918f7ae114b..94b12284a265954d55168d33b699c269a4d8b190 100644 (file)
--- a/cache.h
+++ b/cache.h
/* Read and unpack a sha1 file into memory, write memory to a sha1 file */
extern int sha1_object_info(const unsigned char *, unsigned long *);
-extern void * read_sha1_file(const unsigned char *sha1, enum object_type *type, unsigned long *size);
+extern void *read_sha1_file_repl(const unsigned char *sha1, enum object_type *type, unsigned long *size, const unsigned char **replacement);
+static inline void *read_sha1_file(const unsigned char *sha1, enum object_type *type, unsigned long *size)
+{
+ return read_sha1_file_repl(sha1, type, size, NULL);
+}
extern int hash_sha1_file(const void *buf, unsigned long len, const char *type, unsigned char *sha1);
extern int write_sha1_file(void *buf, unsigned long len, const char *type, unsigned char *return_sha1);
extern int pretend_sha1_file(void *, unsigned long, enum object_type, unsigned char *);
diff --git a/sha1_file.c b/sha1_file.c
index 4bf24ffcf6dd45a80a64df937e724c70c57aaca4..9119b795bd2c39d91731f181a304e9575c0564f5 100644 (file)
--- a/sha1_file.c
+++ b/sha1_file.c
return read_packed_sha1(sha1, type, size);
}
-void *read_sha1_file(const unsigned char *sha1, enum object_type *type,
- unsigned long *size)
+void *read_sha1_file_repl(const unsigned char *sha1,
+ enum object_type *type,
+ unsigned long *size,
+ const unsigned char **replacement)
{
const unsigned char *repl = lookup_replace_object(sha1);
void *data = read_object(repl, type, size);
if (!data && (has_loose_object(repl) || has_packed_and_bad(repl)))
die("object %s is corrupted", sha1_to_hex(repl));
+ if (replacement)
+ *replacement = repl;
+
return data;
}