From 0cc73ca2a9a2aa5276cd022be9891475a15ecee3 Mon Sep 17 00:00:00 2001 From: Maxime Chevalier-Boisvert Date: Mon, 19 Apr 2021 17:07:27 -0400 Subject: Malloc branch entries (#112) * Malloc branch entries * Add ASM comment for stack overflow check * WIP * Fix branch GC code. Add rb_darray_remove_unordered(). * Fix block end_pos after branch rewriting. Remove dst_patched bits. --- darray.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'darray.h') diff --git a/darray.h b/darray.h index 71e2d7e6ce..b613d08489 100644 --- a/darray.h +++ b/darray.h @@ -51,10 +51,20 @@ 1 \ ) : 0) +// Last element of the array +// +#define rb_darray_back(ary) ((ary)->data[(ary)->meta.size - 1]) + // Remove the last element of the array. // #define rb_darray_pop_back(ary) ((ary)->meta.size--) +// Remove element at idx and replace it by the last element +#define rb_darray_remove_unordered(ary, idx) do { \ + rb_darray_set(ary, idx, rb_darray_back(ary)); \ + rb_darray_pop_back(ary); \ +} while (0); + // Iterate over items of the array in a for loop // #define rb_darray_foreach(ary, idx_name, elem_ptr_var) \ -- cgit v1.2.1