Merge branch 'jc/rebase-limit'
[gitweb.git] / epoch.c
diff --git a/epoch.c b/epoch.c
index cbbc418c146c9fe4d6723b6548ff7bef0fb2cc6c..3a767486da3e92b782bb67601a60921b7c747bff 100644 (file)
--- a/epoch.c
+++ b/epoch.c
@@ -28,7 +28,7 @@ static BN_CTX *context = NULL;
 static struct fraction *one = NULL;
 static struct fraction *zero = NULL;
 
-static BN_CTX *get_BN_CTX()
+static BN_CTX *get_BN_CTX(void)
 {
        if (!context) {
                context = BN_CTX_new();
@@ -36,7 +36,7 @@ static BN_CTX *get_BN_CTX()
        return context;
 }
 
-static struct fraction *new_zero()
+static struct fraction *new_zero(void)
 {
        struct fraction *result = xmalloc(sizeof(*result));
        BN_init(&result->numerator);
@@ -75,7 +75,7 @@ static struct fraction *init_fraction(struct fraction *fraction)
        return fraction;
 }
 
-static struct fraction *get_one()
+static struct fraction *get_one(void)
 {
        if (!one) {
                one = new_zero();
@@ -84,7 +84,7 @@ static struct fraction *get_one()
        return one;
 }
 
-static struct fraction *get_zero()
+static struct fraction *get_zero(void)
 {
        if (!zero) {
                zero = new_zero();
@@ -190,7 +190,7 @@ static void free_mass_counter(struct mass_counter *counter)
  * enqueued, enqueuing the commit in a list of pending commits, in latest
  * commit date first order.
  *
- * The algorithm then preceeds to visit each commit in the pending queue.
+ * The algorithm then proceeds to visit each commit in the pending queue.
  * Upon each visit, the pending mass is added to the mass already seen for that
  * commit and then divided into N equal portions, where N is the number of
  * parents of the commit being visited. The divided portions are then injected
@@ -255,11 +255,11 @@ static int find_base_for_list(struct commit_list *list, struct commit **boundary
 
                                if (!parent_node) {
                                        parent_node = new_mass_counter(parent, &distribution);
-                                       insert_by_date(&pending, parent);
+                                       insert_by_date(parent, &pending);
                                        commit_list_insert(parent, &cleaner);
                                } else {
                                        if (!compare(&parent_node->pending, get_zero()))
-                                               insert_by_date(&pending, parent);
+                                               insert_by_date(parent, &pending);
                                        add(&parent_node->pending, &parent_node->pending, &distribution);
                                }
                        }
@@ -499,7 +499,7 @@ static int emit_stack(struct commit_list **stack, emitter_func emitter, int incl
                if (*stack || include_last) {
                        if (!*stack) 
                                next->object.flags |= BOUNDARY;
-                       action = (*emitter) (next);
+                       action = emitter(next);
                }
        }
 
@@ -545,7 +545,7 @@ static int sort_in_merge_order(struct commit *head_of_epoch, emitter_func emitte
                                if (next->object.flags & UNINTERESTING) {
                                        action = STOP;
                                } else {
-                                       action = (*emitter) (next);
+                                       action = emitter(next);
                                }
                                if (action != STOP) {
                                        next = next->parents->item;
@@ -562,7 +562,7 @@ static int sort_in_merge_order(struct commit *head_of_epoch, emitter_func emitte
        }
 
        if (next && (action != STOP) && !ret) {
-               (*emitter) (next);
+               emitter(next);
        }
 
        return ret;
@@ -582,19 +582,8 @@ int sort_list_in_merge_order(struct commit_list *list, emitter_func emitter)
        int action = CONTINUE;
        struct commit_list *reversed = NULL;
 
-       for (; list; list = list->next) {
-               struct commit *next = list->item;
-
-               if (!(next->object.flags & UNINTERESTING)) {
-                       if (next->object.flags & DUPCHECK) {
-                               fprintf(stderr, "%s: duplicate commit %s ignored\n",
-                                       __FUNCTION__, sha1_to_hex(next->object.sha1));
-                       } else {
-                               next->object.flags |= DUPCHECK;
-                               commit_list_insert(list->item, &reversed);
-                       }
-               }
-       }
+       for (; list; list = list->next)
+               commit_list_insert(list->item, &reversed);
 
        if (!reversed)
                return ret;
@@ -617,7 +606,7 @@ int sort_list_in_merge_order(struct commit_list *list, emitter_func emitter)
                while (reversed) {
                        struct commit * next = pop_commit(&reversed);
 
-                       if (!(next->object.flags & VISITED)) {
+                       if (!(next->object.flags & VISITED) && next!=base) {
                                sort_first_epoch(next, &stack);
                                if (reversed) {
                                        /*