mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-20 19:58:19 +02:00
Most of the time, we can infer the type to append in
util_dynarray_append using __typeof__, which is standardized in C23 and
support in Jesse's MSMSVCV. This patch drops the type argument most of
the time, making util_dynarray a little more ergonomic to use.
This is done in four steps.
First, rename util_dynarray_append -> util_dynarray_append_typed
bash -c "find . -type f -exec sed -i -e 's/util_dynarray_append(/util_dynarray_append_typed(/g' \{} \;"
Then, add a new append that infers the type. This is much more ergonomic
for what you want most of the time.
Next, use type-inferred append as much as possible, via Coccinelle
patch (plus manual fixup):
@@
expression dynarray, element;
type type;
@@
-util_dynarray_append_typed(dynarray, type, element);
+util_dynarray_append(dynarray, element);
Finally, hand fixup cases that Coccinelle missed or incorrectly
translated, of which there were several because we can't used the
untyped append with a literal (since the sizeof won't do what you want).
All four steps are squashed to produce a single patch changing every
util_dynarray_append call site in tree to either drop a type parameter
(if possible) or insert a _typed suffix (if we can't infer). As such,
the final patch is best reviewed by hand even though it was
tool-assisted.
No Long Linguine Meals were involved in the making of this patch.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38038>
|
||
|---|---|---|
| .. | ||
| dxcapi.h | ||
| dxil_buffer.c | ||
| dxil_buffer.h | ||
| dxil_buffer_test.c | ||
| dxil_container.c | ||
| dxil_container.h | ||
| dxil_dump.c | ||
| dxil_dump.h | ||
| dxil_dump_decls.h | ||
| dxil_enums.c | ||
| dxil_enums.h | ||
| dxil_function.c | ||
| dxil_function.h | ||
| dxil_internal.h | ||
| dxil_module.c | ||
| dxil_module.h | ||
| dxil_nir.c | ||
| dxil_nir.h | ||
| dxil_nir_algebraic.py | ||
| dxil_nir_lower_int_cubemaps.c | ||
| dxil_nir_lower_int_cubemaps.h | ||
| dxil_nir_lower_int_samplers.c | ||
| dxil_nir_lower_int_samplers.h | ||
| dxil_nir_lower_vs_vertex_conversion.c | ||
| dxil_nir_tess.c | ||
| dxil_signature.c | ||
| dxil_signature.h | ||
| dxil_validator.cpp | ||
| dxil_validator.h | ||
| dxil_versions.h | ||
| meson.build | ||
| nir_to_dxil.c | ||
| nir_to_dxil.h | ||