summaryrefslogtreecommitdiff
path: root/mktag.c
diff options
context:
space:
mode:
authorNicolas Pitre <nico@cam.org>2005-05-20 20:57:28 (GMT)
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-05-20 22:41:45 (GMT)
commit91d7b8afc2dc8bacde2012ad076cd8d0c4d36697 (patch)
tree52d6c623ba410127411bcc914b7c6cc4ba32f4f3 /mktag.c
parente99d59ff0bff349ef205cef1076e0354c8130680 (diff)
downloadgit-91d7b8afc2dc8bacde2012ad076cd8d0c4d36697.zip
git-91d7b8afc2dc8bacde2012ad076cd8d0c4d36697.tar.gz
git-91d7b8afc2dc8bacde2012ad076cd8d0c4d36697.tar.bz2
[PATCH] delta read
This makes the core code aware of delta objects and undeltafy them as needed. The convention is to use read_sha1_file() to have undeltafication done automatically (most users do that already so this is transparent). If the delta object itself has to be accessed then it must be done through map_sha1_file() and unpack_sha1_file(). In that context mktag.c has been switched to read_sha1_file() as there is no reason to do the full map+unpack manually. Signed-off-by: Nicolas Pitre <nico@cam.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mktag.c')
-rw-r--r--mktag.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/mktag.c b/mktag.c
index 8605802..aa4a6d8 100644
--- a/mktag.c
+++ b/mktag.c
@@ -25,20 +25,14 @@
static int verify_object(unsigned char *sha1, const char *expected_type)
{
int ret = -1;
- unsigned long mapsize;
- void *map = map_sha1_file(sha1, &mapsize);
-
- if (map) {
- char type[100];
- unsigned long size;
- void *buffer = unpack_sha1_file(map, mapsize, type, &size);
-
- if (buffer) {
- if (!strcmp(type, expected_type))
- ret = check_sha1_signature(sha1, buffer, size, type);
- free(buffer);
- }
- munmap(map, mapsize);
+ char type[100];
+ unsigned long size;
+ void *buffer = read_sha1_file(sha1, type, &size);
+
+ if (buffer) {
+ if (!strcmp(type, expected_type))
+ ret = check_sha1_signature(sha1, buffer, size, type);
+ free(buffer);
}
return ret;
}