File 0417-erts-Silence-CodeChecker-in-enif_send.patch of Package erlang
From 4d06d9ce2b9cef3556f33edd77985661f20c1ff1 Mon Sep 17 00:00:00 2001
From: Sverker Eriksson <sverker@erlang.org>
Date: Mon, 8 Feb 2021 21:50:02 +0100
Subject: [PATCH 17/34] erts: Silence CodeChecker in enif_send
---
erts/emulator/beam/erl_nif.c | 24 +++++++++++++-----------
1 file changed, 13 insertions(+), 11 deletions(-)
diff --git a/erts/emulator/beam/erl_nif.c b/erts/emulator/beam/erl_nif.c
index 6a9f252608..359ebee52e 100644
--- a/erts/emulator/beam/erl_nif.c
+++ b/erts/emulator/beam/erl_nif.c
@@ -897,17 +897,19 @@ int enif_send(ErlNifEnv* env, const ErlNifPid* to_pid,
if (!env || !env->tracee) {
/* This clause is taken when enif_send is called in a nif
that is not a erl_tracer nif. */
-
- if (c_p && IS_TRACED_FL(c_p, F_TRACE_SEND)) {
- full_flush_env(env);
- trace_send(c_p, receiver, msg);
- full_cache_env(env);
- }
- if (c_p && scheduler > 0 && copy_sz > ERTS_MSG_COPY_WORDS_PER_REDUCTION) {
- Uint reds = copy_sz / ERTS_MSG_COPY_WORDS_PER_REDUCTION;
- if (reds > CONTEXT_REDS)
- reds = CONTEXT_REDS;
- BUMP_REDS(c_p, (int) reds);
+ if (c_p) {
+ ASSERT(env);
+ if (IS_TRACED_FL(c_p, F_TRACE_SEND)) {
+ full_flush_env(env);
+ trace_send(c_p, receiver, msg);
+ full_cache_env(env);
+ }
+ if (scheduler > 0 && copy_sz > ERTS_MSG_COPY_WORDS_PER_REDUCTION) {
+ Uint reds = copy_sz / ERTS_MSG_COPY_WORDS_PER_REDUCTION;
+ if (reds > CONTEXT_REDS)
+ reds = CONTEXT_REDS;
+ BUMP_REDS(c_p, (int) reds);
+ }
}
}
else {
--
2.26.2