summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Tan <jonathantanmy@google.com>2017-08-18 15:20:31 -0700
committerJunio C Hamano <gitster@pobox.com>2017-08-23 15:12:07 -0700
commitd5a16761820f2539bf8610c8f0c64f610e29314e (patch)
tree4081ca185c262f7a2b6acec8c830a4172789e720
parentf1d8130be0a7229b215b76eac54c561a0124bc99 (diff)
downloadgit-d5a16761820f2539bf8610c8f0c64f610e29314e.tar.gz
pack: move nth_packed_object_{sha1,oid}
Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--cache.h14
-rw-r--r--packfile.c31
-rw-r--r--packfile.h16
-rw-r--r--sha1_file.c31
4 files changed, 46 insertions, 46 deletions
diff --git a/cache.h b/cache.h
index 79457975fe..42a8283365 100644
--- a/cache.h
+++ b/cache.h
@@ -1631,20 +1631,6 @@ extern int odb_pack_keep(const char *name);
extern void check_pack_index_ptr(const struct packed_git *p, const void *ptr);
/*
- * Return the SHA-1 of the nth object within the specified packfile.
- * Open the index if it is not already open. The return value points
- * at the SHA-1 within the mmapped index. Return NULL if there is an
- * error.
- */
-extern const unsigned char *nth_packed_object_sha1(struct packed_git *, uint32_t n);
-/*
- * Like nth_packed_object_sha1, but write the data into the object specified by
- * the the first argument. Returns the first argument on success, and NULL on
- * error.
- */
-extern const struct object_id *nth_packed_object_oid(struct object_id *, struct packed_git *, uint32_t n);
-
-/*
* Return the offset of the nth object within the specified packfile.
* The index must already be opened.
*/
diff --git a/packfile.c b/packfile.c
index b2a3a217d3..cc8d0d7db8 100644
--- a/packfile.c
+++ b/packfile.c
@@ -1636,3 +1636,34 @@ out:
return data;
}
+
+const unsigned char *nth_packed_object_sha1(struct packed_git *p,
+ uint32_t n)
+{
+ const unsigned char *index = p->index_data;
+ if (!index) {
+ if (open_pack_index(p))
+ return NULL;
+ index = p->index_data;
+ }
+ if (n >= p->num_objects)
+ return NULL;
+ index += 4 * 256;
+ if (p->index_version == 1) {
+ return index + 24 * n + 4;
+ } else {
+ index += 8;
+ return index + 20 * n;
+ }
+}
+
+const struct object_id *nth_packed_object_oid(struct object_id *oid,
+ struct packed_git *p,
+ uint32_t n)
+{
+ const unsigned char *hash = nth_packed_object_sha1(p, n);
+ if (!hash)
+ return NULL;
+ hashcpy(oid->hash, hash);
+ return oid;
+}
diff --git a/packfile.h b/packfile.h
index 6a8d46c851..790b174cb3 100644
--- a/packfile.h
+++ b/packfile.h
@@ -63,6 +63,21 @@ extern void unuse_pack(struct pack_window **);
extern void clear_delta_base_cache(void);
extern struct packed_git *add_packed_git(const char *path, size_t path_len, int local);
+/*
+ * Return the SHA-1 of the nth object within the specified packfile.
+ * Open the index if it is not already open. The return value points
+ * at the SHA-1 within the mmapped index. Return NULL if there is an
+ * error.
+ */
+extern const unsigned char *nth_packed_object_sha1(struct packed_git *, uint32_t n);
+/*
+ * Like nth_packed_object_sha1, but write the data into the object specified by
+ * the the first argument. Returns the first argument on success, and NULL on
+ * error.
+ */
+extern const struct object_id *nth_packed_object_oid(struct object_id *, struct packed_git *, uint32_t n);
+
+
extern void *unpack_entry(struct packed_git *, off_t, enum object_type *, unsigned long *);
extern unsigned long unpack_object_header_buffer(const unsigned char *buf, unsigned long len, enum object_type *type, unsigned long *sizep);
extern unsigned long get_size_from_delta(struct packed_git *, struct pack_window **, off_t);
@@ -79,5 +94,4 @@ extern int packed_object_info(struct packed_git *pack, off_t offset, struct obje
extern void mark_bad_packed_object(struct packed_git *p, const unsigned char *sha1);
extern const struct packed_git *has_packed_and_bad(const unsigned char *sha1);
-
#endif
diff --git a/sha1_file.c b/sha1_file.c
index 43e1581530..20cb30b87b 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -1075,37 +1075,6 @@ int parse_sha1_header(const char *hdr, unsigned long *sizep)
return parse_sha1_header_extended(hdr, &oi, 0);
}
-const unsigned char *nth_packed_object_sha1(struct packed_git *p,
- uint32_t n)
-{
- const unsigned char *index = p->index_data;
- if (!index) {
- if (open_pack_index(p))
- return NULL;
- index = p->index_data;
- }
- if (n >= p->num_objects)
- return NULL;
- index += 4 * 256;
- if (p->index_version == 1) {
- return index + 24 * n + 4;
- } else {
- index += 8;
- return index + 20 * n;
- }
-}
-
-const struct object_id *nth_packed_object_oid(struct object_id *oid,
- struct packed_git *p,
- uint32_t n)
-{
- const unsigned char *hash = nth_packed_object_sha1(p, n);
- if (!hash)
- return NULL;
- hashcpy(oid->hash, hash);
- return oid;
-}
-
void check_pack_index_ptr(const struct packed_git *p, const void *vptr)
{
const unsigned char *ptr = vptr;