]> Untitled Git - axy/ft/pushswap.git/commitdiff
Closure call change
authorAxy <gilliardmarthey.axel@gmail.com>
Thu, 11 Dec 2025 00:14:09 +0000 (01:14 +0100)
committerAxy <gilliardmarthey.axel@gmail.com>
Thu, 11 Dec 2025 00:14:09 +0000 (01:14 +0100)
algorithm_quicksort.c
algorithm_selection_sort.c
ops.c
ops_optimizer.c
pushswap.h
stacks.c

index ed5cf4493c1b98199ac3469628445dd87a3cb0bc..377c0a3f312b984412b6cdc992f7573f0938afd8 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: agilliar <marvin@42.fr>                    +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2025/12/05 19:07:14 by agilliar          #+#    #+#             */
-/*   Updated: 2025/12/08 17:57:01 by agilliar         ###   ########.fr       */
+/*   Updated: 2025/12/11 01:12:14 by agilliar         ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -26,12 +26,12 @@ static void quicksort_sift(const t_stacks *stacks, t_closure cb, t_list range)
                if (clist_get_at(stacks->a.list, 0) < pivot)
                {
                        a++;
-                       (cb.func)(cb.data, OP_RA);
+                       closure_call(cb, OP_RA);
                }
                else
                {
                        b++;
-                       (cb.func)(cb.data, OP_PB);
+                       closure_call(cb, OP_PB);
                }
        }
 }
@@ -43,18 +43,18 @@ static void quicksort_rec(const t_stacks *stacks, t_closure cb, t_list range)
 
        if (range.len == 2
                && clist_get_at(stacks->a.list, 0) > clist_get_at(stacks->a.list, -1))
-               (cb.func)(cb.data, OP_SA);
+               closure_call(cb, OP_SA);
        if (range.len <= 2)
                return ;
        pivot = range.len / 2;
        quicksort_sift(stacks, cb, range);
        i = 0;
        while (i++ < range.len - pivot)
-               (cb.func)(cb.data, OP_PA);
+               closure_call(cb, OP_PA);
        quicksort_rec(stacks, cb, list_sub(range, pivot, range.len));
        i = 0;
        while (i++ < pivot)
-               (cb.func)(cb.data, OP_RRA);
+               closure_call(cb, OP_RRA);
        quicksort_rec(stacks, cb, list_sub(range, 0, pivot));
 }
 
index 136dca4dfacb89f8623fee15e79d8df6d4c478fe..d164d54561f868963baa30fa6e2160c22e44ecb7 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: clefrere <clefrere@student.42.fr>          +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2025/12/09 15:43:09 by clefrere          #+#    #+#             */
-/*   Updated: 2025/12/09 15:59:47 by clefrere         ###   ########.fr       */
+/*   Updated: 2025/12/11 01:12:26 by agilliar         ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -22,12 +22,12 @@ void        algorithm_selection_sort(const t_stacks *stacks, t_closure cb)
        {
                if (stacks->a.list->val == sorted.ptr[0])
                {
-                       (cb.func)(cb.data, OP_PB);
+                       closure_call(cb, OP_PB);
                        sorted = list_sub(sorted, 1, sorted.len);
                }
                else
-                       (cb.func)(cb.data, OP_RA);
+                       closure_call(cb, OP_RA);
        }
        while (stacks->b.len)
-               (cb.func)(cb.data, OP_PA);
+               closure_call(cb, OP_PA);
 }
diff --git a/ops.c b/ops.c
index eb02d59f891d1f9b19b7b309225236b0b97e58b6..00d45b507b22c1d969ae0f5d2a44f82d050ddc4a 100644 (file)
--- a/ops.c
+++ b/ops.c
@@ -6,7 +6,7 @@
 /*   By: agilliar <marvin@42.fr>                    +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2025/12/03 10:57:30 by agilliar          #+#    #+#             */
-/*   Updated: 2025/12/08 17:49:07 by agilliar         ###   ########.fr       */
+/*   Updated: 2025/12/11 01:13:40 by agilliar         ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -15,8 +15,8 @@
 
 static void    op_compose_fn(t_op_compose *data, t_stacks *stacks)
 {
-       (data->first.func)(data->first.data, stacks);
-       (data->second.func)(data->second.data, stacks);
+       closure_call(data->first, stacks);
+       closure_call(data->second, stacks);
 }
 
 t_closure      op_compose(t_closure first, t_closure second)
index 8f73581ef54584056b0e4b6a45a4407e125bcd2e..8a1946adb8c8e4a2ba91e9515baf7b9e08adc2e4 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: agilliar <marvin@42.fr>                    +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2025/12/08 17:54:20 by agilliar          #+#    #+#             */
-/*   Updated: 2025/12/09 14:49:55 by agilliar         ###   ########.fr       */
+/*   Updated: 2025/12/11 01:13:45 by agilliar         ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -32,7 +32,7 @@ static void   op_optimizer_inner(t_op_optimizer *data, t_stacks *stacks)
        {
                ops_optimizer_commit(data->opt, stacks);
                cb = data->opt->commit.ops[data->op];
-               (cb.func)(cb.data, stacks);
+               closure_call(cb, stacks);
        }
 }
 
@@ -85,7 +85,7 @@ static void   ops_optimizer_commit_end(t_optimizer *data, t_stacks *stacks)
                *counter *= -1;
        while (*counter != 0)
        {
-               (cb.func)(cb.data, stacks);
+               closure_call(cb, stacks);
                (*counter)++;
        }
 }
@@ -99,14 +99,14 @@ void        ops_optimizer_commit(t_optimizer *data, t_stacks *stacks)
        {
                data->a--;
                data->b--;
-               (cb.func)(cb.data, stacks);
+               closure_call(cb, stacks);
        }
        cb = data->commit.ops[OP_RRR];
        while (data->a < 0 && data->b < 0)
        {
                data->a++;
                data->b++;
-               (cb.func)(cb.data, stacks);
+               closure_call(cb, stacks);
        }
        ops_optimizer_commit_end(data, stacks);
 }
index 8b7ed8143aab37e4b295a7a642dd357a8673e883..dacce38c95ae9b7e8b9e8ce3e47a699b2d457d06 100644 (file)
@@ -6,7 +6,7 @@
 /*   By: clefrere <clefrere@student.42.fr>          +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2025/12/02 11:02:44 by agilliar          #+#    #+#             */
-/*   Updated: 2025/12/11 01:03:57 by agilliar         ###   ########.fr       */
+/*   Updated: 2025/12/11 01:11:55 by agilliar         ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
index 886c6078b15f9d2a5bab8313abdcc17eb6dd8d10..50d89ab487ad99975ca7c6df13e3c0b81ba77420 100644 (file)
--- a/stacks.c
+++ b/stacks.c
@@ -6,7 +6,7 @@
 /*   By: agilliar <marvin@42.fr>                    +#+  +:+       +#+        */
 /*                                                +#+#+#+#+#+   +#+           */
 /*   Created: 2025/12/02 15:57:41 by agilliar          #+#    #+#             */
-/*   Updated: 2025/12/03 12:53:20 by agilliar         ###   ########.fr       */
+/*   Updated: 2025/12/11 01:13:52 by agilliar         ###   ########.fr       */
 /*                                                                            */
 /* ************************************************************************** */
 
@@ -46,7 +46,7 @@ static void   stacks_apply_op(t_stacks_apply_data *data, t_op op)
        stacks = data->stacks;
        ops = data->ops;
        op_fn = ops->ops[op];
-       (op_fn.func)(op_fn.data, stacks);
+       closure_call(op_fn, stacks);
 }
 
 void   stacks_apply(t_stacks *stacks, const t_ops *ops, t_algorithm algo)