From: Jonathan Tan <jonathantanmy@google.com>
To: git@vger.kernel.org
Cc: Jonathan Tan <jonathantanmy@google.com>,
gitster@pobox.com, sbeller@google.com
Subject: [PATCH v2 14/25] pack: move unpack_object_header()
Date: Tue, 8 Aug 2017 18:22:46 -0700 [thread overview]
Message-ID: <f8a3e07776667c0417b630978c96847d9c773b51.1502241234.git.jonathantanmy@google.com> (raw)
In-Reply-To: <cover.1502241234.git.jonathantanmy@google.com>
In-Reply-To: <cover.1502241234.git.jonathantanmy@google.com>
Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
---
cache.h | 1 -
pack.h | 1 +
packfile.c | 26 ++++++++++++++++++++++++++
sha1_file.c | 26 --------------------------
4 files changed, 27 insertions(+), 27 deletions(-)
diff --git a/cache.h b/cache.h
index e29918c75..1ae3333a0 100644
--- a/cache.h
+++ b/cache.h
@@ -1661,7 +1661,6 @@ extern off_t find_pack_entry_one(const unsigned char *sha1, struct packed_git *)
extern int is_pack_valid(struct packed_git *);
extern void *unpack_entry(struct packed_git *, off_t, enum object_type *, unsigned long *);
-extern int unpack_object_header(struct packed_git *, struct pack_window **, off_t *, unsigned long *);
/*
* Iterate over the files in the loose-object parts of the object
diff --git a/pack.h b/pack.h
index 69c92d8d2..5e3552392 100644
--- a/pack.h
+++ b/pack.h
@@ -169,5 +169,6 @@ unsigned long approximate_object_count(void);
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);
+extern int unpack_object_header(struct packed_git *, struct pack_window **, off_t *, unsigned long *);
#endif
diff --git a/packfile.c b/packfile.c
index 511afad85..a4db78ea0 100644
--- a/packfile.c
+++ b/packfile.c
@@ -948,3 +948,29 @@ unsigned long get_size_from_delta(struct packed_git *p,
/* Read the result size */
return get_delta_hdr_size(&data, delta_head+sizeof(delta_head));
}
+
+int unpack_object_header(struct packed_git *p,
+ struct pack_window **w_curs,
+ off_t *curpos,
+ unsigned long *sizep)
+{
+ unsigned char *base;
+ unsigned long left;
+ unsigned long used;
+ enum object_type type;
+
+ /* use_pack() assures us we have [base, base + 20) available
+ * as a range that we can look at. (Its actually the hash
+ * size that is assured.) With our object header encoding
+ * the maximum deflated object size is 2^137, which is just
+ * insane, so we know won't exceed what we have been given.
+ */
+ base = use_pack(p, w_curs, *curpos, &left);
+ used = unpack_object_header_buffer(base, left, &type, sizep);
+ if (!used) {
+ type = OBJ_BAD;
+ } else
+ *curpos += used;
+
+ return type;
+}
diff --git a/sha1_file.c b/sha1_file.c
index 7d354d9b6..f3bcdae17 100644
--- a/sha1_file.c
+++ b/sha1_file.c
@@ -1170,32 +1170,6 @@ static const unsigned char *get_delta_base_sha1(struct packed_git *p,
return NULL;
}
-int unpack_object_header(struct packed_git *p,
- struct pack_window **w_curs,
- off_t *curpos,
- unsigned long *sizep)
-{
- unsigned char *base;
- unsigned long left;
- unsigned long used;
- enum object_type type;
-
- /* use_pack() assures us we have [base, base + 20) available
- * as a range that we can look at. (Its actually the hash
- * size that is assured.) With our object header encoding
- * the maximum deflated object size is 2^137, which is just
- * insane, so we know won't exceed what we have been given.
- */
- base = use_pack(p, w_curs, *curpos, &left);
- used = unpack_object_header_buffer(base, left, &type, sizep);
- if (!used) {
- type = OBJ_BAD;
- } else
- *curpos += used;
-
- return type;
-}
-
static int retry_bad_packed_offset(struct packed_git *p, off_t obj_offset)
{
int type;
--
2.14.0.434.g98096fd7a8-goog
next prev parent reply other threads:[~2017-08-09 1:23 UTC|newest]
Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-08 19:32 [RFC PATCH 00/10] An attempt to move packfile funcs to its own file Jonathan Tan
2017-08-08 19:32 ` [RFC PATCH 01/10] pack: move pack name-related functions Jonathan Tan
2017-08-08 20:36 ` Stefan Beller
2017-08-08 20:50 ` Jonathan Tan
2017-08-09 12:00 ` Christian Couder
2017-08-09 17:16 ` Jonathan Tan
2017-08-11 19:38 ` Ben Peart
2017-08-11 21:34 ` Junio C Hamano
2017-08-16 22:53 ` Jonathan Tan
2017-08-08 19:32 ` [RFC PATCH 02/10] pack: move static state variables Jonathan Tan
2017-08-08 19:32 ` [RFC PATCH 03/10] pack: move pack_report() Jonathan Tan
2017-08-08 19:32 ` [RFC PATCH 04/10] pack: move open_pack_index(), parse_pack_index() Jonathan Tan
2017-08-08 20:19 ` Junio C Hamano
2017-08-08 20:45 ` Jonathan Tan
2017-08-08 19:32 ` [RFC PATCH 05/10] pack: move release_pack_memory() Jonathan Tan
2017-08-08 19:32 ` [RFC PATCH 06/10] pack: move pack-closing functions Jonathan Tan
2017-08-08 19:32 ` [RFC PATCH 07/10] pack: move use_pack() Jonathan Tan
2017-08-08 19:32 ` [RFC PATCH 08/10] pack: move unuse_pack() Jonathan Tan
2017-08-08 19:32 ` [RFC PATCH 09/10] pack: move add_packed_git() Jonathan Tan
2017-08-08 19:32 ` [RFC PATCH 10/10] pack: move install_packed_git() Jonathan Tan
2017-08-08 20:05 ` [RFC PATCH 00/10] An attempt to move packfile funcs to its own file Junio C Hamano
2017-08-08 20:43 ` Jonathan Tan
2017-08-08 21:04 ` Junio C Hamano
2017-08-09 1:22 ` [PATCH v2 00/25] Move exported " Jonathan Tan
2017-08-10 17:21 ` Stefan Beller
2017-08-10 21:19 ` Junio C Hamano
2017-08-10 21:59 ` Jonathan Tan
2017-08-10 22:40 ` Junio C Hamano
2017-08-11 20:36 ` [PATCH 0/2] non-move patches in preparation for packfile.c Jonathan Tan
2017-08-11 20:36 ` [PATCH 1/2] sha1_file: set whence in storage-specific info fn Jonathan Tan
2017-08-11 21:52 ` Junio C Hamano
2017-08-11 20:36 ` [PATCH 2/2] sha1_file: remove read_packed_sha1() Jonathan Tan
2017-08-11 22:06 ` Junio C Hamano
2017-08-11 19:41 ` [PATCH v2 00/25] Move exported packfile funcs to its own file Ben Peart
2017-08-18 23:36 ` Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 01/25] pack: move pack name-related functions Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 02/25] pack: move static state variables Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 03/25] pack: move pack_report() Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 04/25] pack: move open_pack_index(), parse_pack_index() Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 05/25] pack: move release_pack_memory() Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 06/25] pack: move pack-closing functions Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 07/25] pack: move use_pack() Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 08/25] pack: move unuse_pack() Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 09/25] pack: move add_packed_git() Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 10/25] pack: move install_packed_git() Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 11/25] pack: move {,re}prepare_packed_git and approximate_object_count Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 12/25] pack: move unpack_object_header() Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 13/25] pack: move get_size_from_delta() Jonathan Tan
2017-08-09 1:22 ` Jonathan Tan [this message]
2017-08-09 1:22 ` [PATCH v2 15/25] sha1_file: set whence in storage-specific info fn Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 16/25] sha1_file: remove read_packed_sha1() Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 17/25] pack: move packed_object_info(), unpack_entry() Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 18/25] pack: move nth_packed_object_{sha1,oid} Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 19/25] pack: move check_pack_index_ptr(), nth_packed_object_offset() Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 20/25] pack: move find_pack_entry_one(), is_pack_valid() Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 21/25] pack: move find_sha1_pack() Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 22/25] pack: move find_pack_entry() and make it global Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 23/25] pack: move has_sha1_pack() Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 24/25] pack: move has_pack_index() Jonathan Tan
2017-08-09 1:22 ` [PATCH v2 25/25] pack: move for_each_packed_object() Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 00/23] Move exported packfile funcs to its own file Jonathan Tan
2017-08-19 7:33 ` Junio C Hamano
2017-08-20 6:40 ` Junio C Hamano
2017-08-21 18:40 ` Jonathan Tan
2017-08-21 22:55 ` Junio C Hamano
2017-08-18 22:20 ` [PATCH v3 01/23] pack: move pack name-related functions Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 02/23] pack: move static state variables Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 03/23] pack: move pack_report() Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 04/23] pack: move open_pack_index(), parse_pack_index() Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 05/23] pack: move release_pack_memory() Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 06/23] pack: move pack-closing functions Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 07/23] pack: move use_pack() Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 08/23] pack: move unuse_pack() Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 09/23] pack: move add_packed_git() Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 10/23] pack: move install_packed_git() Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 11/23] pack: move {,re}prepare_packed_git and approximate_object_count Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 12/23] pack: move unpack_object_header_buffer() Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 13/23] pack: move get_size_from_delta() Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 14/23] pack: move unpack_object_header() Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 15/23] pack: move clear_delta_base_cache(), packed_object_info(), unpack_entry() Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 16/23] pack: move nth_packed_object_{sha1,oid} Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 17/23] pack: move check_pack_index_ptr(), nth_packed_object_offset() Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 18/23] pack: move find_pack_entry_one(), is_pack_valid() Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 19/23] pack: move find_sha1_pack() Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 20/23] pack: move find_pack_entry() and make it global Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 21/23] pack: move has_sha1_pack() Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 22/23] pack: move has_pack_index() Jonathan Tan
2017-08-18 22:20 ` [PATCH v3 23/23] pack: move for_each_packed_object() Jonathan Tan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f8a3e07776667c0417b630978c96847d9c773b51.1502241234.git.jonathantanmy@google.com \
--to=jonathantanmy@google.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=sbeller@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).