File 1052-erts-Change-arity-type-back-to-Uint.patch of Package erlang

From 2a92f68dbd896f083cbd200242e09ee28f75ff68 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?John=20H=C3=B6gberg?= <john@erlang.org>
Date: Mon, 22 Apr 2024 10:25:37 +0200
Subject: [PATCH] erts: Change arity type back to Uint

op_i_func_info_IaaI, and perhaps a few others, indirectly rely on
the arity being stored as a word. Since declaring the field as a
byte doesn't actually save anything because of tail padding, we'll
change it back to `Uint`.
---
 erts/emulator/beam/code_ix.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/erts/emulator/beam/code_ix.h b/erts/emulator/beam/code_ix.h
index 6298cd450b..114a71d234 100644
--- a/erts/emulator/beam/code_ix.h
+++ b/erts/emulator/beam/code_ix.h
@@ -87,7 +87,11 @@ typedef unsigned ErtsCodeIndex;
 typedef struct ErtsCodeMFA_ {
     Eterm module;
     Eterm function;
-    byte arity;
+
+    /* This is technically a byte, but the interpreter needs this to be a word
+     * for argument packing to work properly, and declaring it as a byte won't
+     * save any space due to tail padding. */
+    Uint arity;
 } ErtsCodeMFA;
 
 /*
-- 
2.35.3

openSUSE Build Service is sponsored by