if (!obj)
return create_object(the_repository, oid->hash,
alloc_blob_node(the_repository));
- return object_as_type(obj, OBJ_BLOB, 0);
+ return object_as_type(the_repository, obj, OBJ_BLOB, 0);
}
int parse_blob_buffer(struct blob *item, void *buffer, unsigned long size)
enum object_type type = oid_object_info(the_repository,
&obj->oid, NULL);
if (type > 0)
- object_as_type(obj, type, 0);
+ object_as_type(the_repository, obj, type, 0);
}
ret = type_name(obj->type);
if (!obj)
return NULL;
- return object_as_type(obj, OBJ_COMMIT, quiet);
+ return object_as_type(the_repository, obj, OBJ_COMMIT, quiet);
}
struct commit *lookup_commit_reference(const struct object_id *oid)
if (!obj)
return create_object(the_repository, oid->hash,
alloc_commit_node(the_repository));
- return object_as_type(obj, OBJ_COMMIT, 0);
+ return object_as_type(the_repository, obj, OBJ_COMMIT, 0);
}
struct commit *lookup_commit_reference_by_name(const char *name)
return obj;
}
-void *object_as_type(struct object *obj, enum object_type type, int quiet)
+void *object_as_type_the_repository(struct object *obj, enum object_type type, int quiet)
{
if (obj->type == type)
return 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);
+#define object_as_type(r, o, t, q) object_as_type_##r(o, t, q)
+void *object_as_type_the_repository(struct object *obj, enum object_type type, int quiet);
/*
* Returns the object, having parsed it to find out what it is.
if (o->type == OBJ_NONE) {
int type = oid_object_info(the_repository, name, NULL);
- if (type < 0 || !object_as_type(o, type, 0))
+ if (type < 0 || !object_as_type(the_repository, o, type, 0))
return PEEL_INVALID;
}
if (!obj)
return create_object(the_repository, oid->hash,
alloc_tag_node(the_repository));
- return object_as_type(obj, OBJ_TAG, 0);
+ return object_as_type(the_repository, obj, OBJ_TAG, 0);
}
static timestamp_t parse_tag_date(const char *buf, const char *tail)
if (!obj)
return create_object(the_repository, oid->hash,
alloc_tree_node(the_repository));
- return object_as_type(obj, OBJ_TREE, 0);
+ return object_as_type(the_repository, obj, OBJ_TREE, 0);
}
int parse_tree_buffer(struct tree *item, void *buffer, unsigned long size)