summaryrefslogtreecommitdiff
path: root/src/revobject.c
diff options
context:
space:
mode:
authorVicent Marti <tanoku@gmail.com>2010-07-10 11:50:16 -0700
committerVicent Marti <tanoku@gmail.com>2010-07-15 23:39:22 +0200
commit40721f6b1297f2a48aeb5c9a3ac095767b1153bf (patch)
tree8be856d8f8c8aab89f093583f091979aa2a4b8e3 /src/revobject.c
parentb231ef3acdcf396dba5f83f89488be7519da551a (diff)
downloadlibgit2-40721f6b1297f2a48aeb5c9a3ac095767b1153bf.tar.gz
Changed revpool's object table to support arbitrary objects
git_revpool_object now has a type identifier for each object type in a revpool (commits, trees, blobs, etc). Trees can now be stored in the revision pool. git_revpool_tableit now supports filtering objects by their type when iterating through the object table. Signed-off-by: Vicent Marti <tanoku@gmail.com>
Diffstat (limited to 'src/revobject.c')
-rw-r--r--src/revobject.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/revobject.c b/src/revobject.c
index 32d5e6464..47d75e047 100644
--- a/src/revobject.c
+++ b/src/revobject.c
@@ -197,3 +197,14 @@ git_revpool_object *git_revpool_tableit_next(git_revpool_tableit *it)
return next->object;
}
+
+git_revpool_object *git_revpool_tableit_nextfilter(git_revpool_tableit *it, git_otype type)
+{
+ git_revpool_object *obj;
+
+ do {
+ obj = git_revpool_tableit_next(it);
+ } while (obj != NULL && obj->type != type);
+
+ return obj;
+}