summaryrefslogtreecommitdiff
path: root/object.h
diff options
context:
space:
mode:
Diffstat (limited to 'object.h')
-rw-r--r--object.h32
1 files changed, 29 insertions, 3 deletions
diff --git a/object.h b/object.h
index f13f85b2a9..1b96073601 100644
--- a/object.h
+++ b/object.h
@@ -1,6 +1,32 @@
#ifndef OBJECT_H
#define OBJECT_H
+struct parsed_object_pool {
+ struct object **obj_hash;
+ int nr_objs, obj_hash_size;
+
+ /* TODO: migrate alloc_states to mem-pool? */
+ struct alloc_state *blob_state;
+ struct alloc_state *tree_state;
+ struct alloc_state *commit_state;
+ struct alloc_state *tag_state;
+ struct alloc_state *object_state;
+ unsigned commit_count;
+
+ /* parent substitutions from .git/info/grafts and .git/shallow */
+ struct commit_graft **grafts;
+ int grafts_alloc, grafts_nr;
+
+ int is_shallow;
+ struct stat_validity *shallow_stat;
+ char *alternate_shallow_file;
+
+ int commit_graft_prepared;
+};
+
+struct parsed_object_pool *parsed_object_pool_new(void);
+void parsed_object_pool_clear(struct parsed_object_pool *o);
+
struct object_list {
struct object *item;
struct object_list *next;
@@ -25,7 +51,6 @@ struct object_array {
#define OBJECT_ARRAY_INIT { 0, 0, NULL }
-#define TYPE_BITS 3
/*
* object flag allocation:
* revision.h: 0---------10 26
@@ -37,12 +62,13 @@ struct object_array {
* bundle.c: 16
* http-push.c: 16-----19
* commit.c: 16-----19
- * sha1_name.c: 20
+ * sha1-name.c: 20
* list-objects-filter.c: 21
* builtin/fsck.c: 0--3
* builtin/index-pack.c: 2021
* builtin/pack-objects.c: 20
* builtin/reflog.c: 10--12
+ * builtin/show-branch.c: 0-------------------------------------------26
* builtin/unpack-objects.c: 2021
*/
#define FLAG_BITS 27
@@ -85,7 +111,7 @@ extern struct object *get_indexed_object(unsigned int);
*/
struct object *lookup_object(const unsigned char *sha1);
-extern void *create_object(const unsigned char *sha1, void *obj);
+extern void *create_object(struct repository *r, const unsigned char *sha1, void *obj);
void *object_as_type(struct object *obj, enum object_type type, int quiet);