mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-02-05 12:20:36 +01:00
all/trivial: rename NM_UTILS_LOOKUP_STR() to have "_A" suffix
NM_UTILS_LOOKUP_STR() uses alloca(). Partly to avoid the overhead of malloc(), but more important because it's convenient to use. It does not require to declare a varible to manage the lifetime of the heap allocation. It's quite safe, because the stack allocation is of a fixed size of only a few bytes. Overall, I think the convenience that we get (resulting in simpler code) outweighs the danger of stack allocation in this case. It's still worth it. However, as it uses alloca(), it still must not be used inside a (unbound) loop and it is obviously a macro. Rename the macros to have a _A() suffix. This should make the peculiarities more apparent.
This commit is contained in:
parent
e18ff51d4f
commit
617bdbd8c2
6 changed files with 33 additions and 30 deletions
|
|
@ -1194,7 +1194,7 @@ fcn_name (lookup_type val) \
|
|||
/* Call the string-lookup-table function @fcn_name. If the function returns
|
||||
* %NULL, the numeric index is converted to string using a alloca() buffer.
|
||||
* Beware: this macro uses alloca(). */
|
||||
#define NM_UTILS_LOOKUP_STR(fcn_name, idx) \
|
||||
#define NM_UTILS_LOOKUP_STR_A(fcn_name, idx) \
|
||||
({ \
|
||||
typeof (idx) _idx = (idx); \
|
||||
const char *_s; \
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ _acd_event_to_string (unsigned int event)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
#define acd_event_to_string(event) NM_UTILS_LOOKUP_STR (_acd_event_to_string, event)
|
||||
#define acd_event_to_string_a(event) NM_UTILS_LOOKUP_STR_A (_acd_event_to_string, event)
|
||||
|
||||
static const char *
|
||||
acd_error_to_string (int error)
|
||||
|
|
@ -201,7 +201,7 @@ acd_event (GIOChannel *source, GIOCondition condition, gpointer data)
|
|||
nm_platform_link_get_name (NM_PLATFORM_GET, self->ifindex));
|
||||
break;
|
||||
default:
|
||||
_LOGD ("unhandled event '%s'", acd_event_to_string (event->event));
|
||||
_LOGD ("unhandled event '%s'", acd_event_to_string_a (event->event));
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -744,8 +744,7 @@ NM_UTILS_LOOKUP_STR_DEFINE (nm_device_state_reason_to_str, NMDeviceStateReason,
|
|||
NM_UTILS_LOOKUP_STR_ITEM (NM_DEVICE_STATE_REASON_SRIOV_CONFIGURATION_FAILED, "sriov-configuration-failed"),
|
||||
);
|
||||
|
||||
#define reason_to_string(reason) \
|
||||
NM_UTILS_LOOKUP_STR (nm_device_state_reason_to_str, reason)
|
||||
#define reason_to_string_a(reason) NM_UTILS_LOOKUP_STR_A (nm_device_state_reason_to_str, reason)
|
||||
|
||||
NM_UTILS_LOOKUP_STR_DEFINE_STATIC (mtu_source_to_str, NMDeviceMtuSource,
|
||||
NM_UTILS_LOOKUP_DEFAULT_NM_ASSERT ("unknown"),
|
||||
|
|
@ -13363,7 +13362,7 @@ _set_unmanaged_flags (NMDevice *self,
|
|||
flags,
|
||||
NM_PRINT_FMT_QUOTED (allow_state_transition,
|
||||
", reason ",
|
||||
reason_to_string (reason),
|
||||
reason_to_string_a (reason),
|
||||
transition_state ? ", transition-state" : "",
|
||||
""));
|
||||
|
||||
|
|
@ -14313,7 +14312,7 @@ nm_device_cleanup (NMDevice *self, NMDeviceStateReason reason, CleanupType clean
|
|||
if (reason == NM_DEVICE_STATE_REASON_NOW_MANAGED)
|
||||
_LOGD (LOGD_DEVICE, "preparing device");
|
||||
else
|
||||
_LOGD (LOGD_DEVICE, "deactivating device (reason '%s') [%d]", reason_to_string (reason), reason);
|
||||
_LOGD (LOGD_DEVICE, "deactivating device (reason '%s') [%d]", reason_to_string_a (reason), reason);
|
||||
|
||||
/* Save whether or not we tried IPv6 for later */
|
||||
priv = NM_DEVICE_GET_PRIVATE (self);
|
||||
|
|
@ -14700,7 +14699,7 @@ _set_state_full (NMDevice *self,
|
|||
_LOGD (LOGD_DEVICE, "state change: %s -> %s (reason '%s', sys-iface-state: '%s'%s)",
|
||||
nm_device_state_to_str (old_state),
|
||||
nm_device_state_to_str (state),
|
||||
reason_to_string (reason),
|
||||
reason_to_string_a (reason),
|
||||
_sys_iface_state_to_str (priv->sys_iface_state),
|
||||
priv->firmware_missing ? ", missing firmware" : "");
|
||||
return;
|
||||
|
|
@ -14709,7 +14708,7 @@ _set_state_full (NMDevice *self,
|
|||
_LOGI (LOGD_DEVICE, "state change: %s -> %s (reason '%s', sys-iface-state: '%s')",
|
||||
nm_device_state_to_str (old_state),
|
||||
nm_device_state_to_str (state),
|
||||
reason_to_string (reason),
|
||||
reason_to_string_a (reason),
|
||||
_sys_iface_state_to_str (priv->sys_iface_state));
|
||||
|
||||
priv->in_state_changed = TRUE;
|
||||
|
|
@ -15046,7 +15045,7 @@ queued_state_set (gpointer user_data)
|
|||
|
||||
_LOGD (LOGD_DEVICE, "queue-state[%s, reason:%s, id:%u]: %s",
|
||||
nm_device_state_to_str (priv->queued_state.state),
|
||||
reason_to_string (priv->queued_state.reason),
|
||||
reason_to_string_a (priv->queued_state.reason),
|
||||
priv->queued_state.id,
|
||||
"change state");
|
||||
|
||||
|
|
@ -15077,11 +15076,11 @@ nm_device_queue_state (NMDevice *self,
|
|||
if (priv->queued_state.id && priv->queued_state.state == state) {
|
||||
_LOGD (LOGD_DEVICE, "queue-state[%s, reason:%s, id:%u]: %s%s%s%s",
|
||||
nm_device_state_to_str (priv->queued_state.state),
|
||||
reason_to_string (priv->queued_state.reason),
|
||||
reason_to_string_a (priv->queued_state.reason),
|
||||
priv->queued_state.id,
|
||||
"ignore queuing same state change",
|
||||
NM_PRINT_FMT_QUOTED (priv->queued_state.reason != reason,
|
||||
" (reason differs: ", reason_to_string (reason), ")", ""));
|
||||
" (reason differs: ", reason_to_string_a (reason), ")", ""));
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -15093,7 +15092,7 @@ nm_device_queue_state (NMDevice *self,
|
|||
if (priv->queued_state.id) {
|
||||
_LOGW (LOGD_DEVICE, "queue-state[%s, reason:%s, id:%u]: %s",
|
||||
nm_device_state_to_str (priv->queued_state.state),
|
||||
reason_to_string (priv->queued_state.reason),
|
||||
reason_to_string_a (priv->queued_state.reason),
|
||||
priv->queued_state.id,
|
||||
"replace previously queued state change");
|
||||
nm_clear_g_source (&priv->queued_state.id);
|
||||
|
|
@ -15106,7 +15105,7 @@ nm_device_queue_state (NMDevice *self,
|
|||
|
||||
_LOGD (LOGD_DEVICE, "queue-state[%s, reason:%s, id:%u]: %s",
|
||||
nm_device_state_to_str (state),
|
||||
reason_to_string (reason),
|
||||
reason_to_string_a (reason),
|
||||
priv->queued_state.id,
|
||||
"queue state change");
|
||||
}
|
||||
|
|
@ -15121,7 +15120,7 @@ queued_state_clear (NMDevice *self)
|
|||
|
||||
_LOGD (LOGD_DEVICE, "queue-state[%s, reason:%s, id:%u]: %s",
|
||||
nm_device_state_to_str (priv->queued_state.state),
|
||||
reason_to_string (priv->queued_state.reason),
|
||||
reason_to_string_a (priv->queued_state.reason),
|
||||
priv->queued_state.id,
|
||||
"clear queued state change");
|
||||
nm_clear_g_source (&priv->queued_state.id);
|
||||
|
|
|
|||
|
|
@ -161,7 +161,8 @@ NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_state_to_string, NMActiveConnectionState,
|
|||
NM_UTILS_LOOKUP_STR_ITEM (NM_ACTIVE_CONNECTION_STATE_DEACTIVATING, "deactivating"),
|
||||
NM_UTILS_LOOKUP_STR_ITEM (NM_ACTIVE_CONNECTION_STATE_DEACTIVATED, "deactivated"),
|
||||
);
|
||||
#define state_to_string(state) NM_UTILS_LOOKUP_STR (_state_to_string, state)
|
||||
|
||||
#define state_to_string_a(state) NM_UTILS_LOOKUP_STR_A (_state_to_string, state)
|
||||
|
||||
/* the maximum required buffer size for _state_flags_to_string(). */
|
||||
#define _NM_ACTIVATION_STATE_FLAG_TO_STRING_BUFSIZE (255)
|
||||
|
|
@ -256,8 +257,8 @@ nm_active_connection_set_state (NMActiveConnection *self,
|
|||
return;
|
||||
|
||||
_LOGD ("set state %s (was %s)",
|
||||
state_to_string (new_state),
|
||||
state_to_string (priv->state));
|
||||
state_to_string_a (new_state),
|
||||
state_to_string_a (priv->state));
|
||||
|
||||
if (new_state > NM_ACTIVE_CONNECTION_STATE_ACTIVATED) {
|
||||
/* once we are about to deactivate, we don't need the keep-alive instance
|
||||
|
|
@ -786,11 +787,11 @@ check_master_ready (NMActiveConnection *self)
|
|||
signalling
|
||||
? "signal"
|
||||
: (priv->master_ready ? "already signalled" : "not signalling"),
|
||||
state_to_string (priv->state),
|
||||
state_to_string_a (priv->state),
|
||||
priv->master
|
||||
? nm_sprintf_bufa (128, "master %p is in state %s",
|
||||
priv->master,
|
||||
state_to_string (nm_active_connection_get_state (priv->master)))
|
||||
state_to_string_a (nm_active_connection_get_state (priv->master)))
|
||||
: "no master");
|
||||
|
||||
if (signalling) {
|
||||
|
|
@ -854,7 +855,7 @@ nm_active_connection_set_master (NMActiveConnection *self, NMActiveConnection *m
|
|||
_LOGD ("set master %p, %s, state %s",
|
||||
master,
|
||||
nm_active_connection_get_settings_connection_id (master),
|
||||
state_to_string (nm_active_connection_get_state (master)));
|
||||
state_to_string_a (nm_active_connection_get_state (master)));
|
||||
|
||||
priv->master = g_object_ref (master);
|
||||
g_signal_connect (priv->master,
|
||||
|
|
|
|||
|
|
@ -1882,8 +1882,8 @@ device_state_changed (NMDevice *device,
|
|||
if (blocked_reason != NM_SETTINGS_AUTO_CONNECT_BLOCKED_REASON_NONE) {
|
||||
_LOGD (LOGD_DEVICE, "blocking autoconnect of connection '%s': %s",
|
||||
nm_settings_connection_get_id (sett_conn),
|
||||
NM_UTILS_LOOKUP_STR (nm_device_state_reason_to_str,
|
||||
nm_device_state_reason_check (reason)));
|
||||
NM_UTILS_LOOKUP_STR_A (nm_device_state_reason_to_str,
|
||||
nm_device_state_reason_check (reason)));
|
||||
nm_settings_connection_autoconnect_blocked_reason_set (sett_conn, blocked_reason, TRUE);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -884,14 +884,15 @@ NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_vpn_plugin_failure_to_string, NMVpnPluginFai
|
|||
NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_PLUGIN_FAILURE_CONNECT_FAILED, "connect-failed"),
|
||||
NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_PLUGIN_FAILURE_BAD_IP_CONFIG, "bad-ip-config"),
|
||||
);
|
||||
#define vpn_plugin_failure_to_string(failure) NM_UTILS_LOOKUP_STR (_vpn_plugin_failure_to_string, failure)
|
||||
|
||||
#define vpn_plugin_failure_to_string_a(failure) NM_UTILS_LOOKUP_STR_A (_vpn_plugin_failure_to_string, failure)
|
||||
|
||||
static void
|
||||
plugin_failed (NMVpnConnection *self, guint reason)
|
||||
{
|
||||
NMVpnConnectionPrivate *priv = NM_VPN_CONNECTION_GET_PRIVATE (self);
|
||||
|
||||
_LOGW ("VPN plugin: failed: %s (%d)", vpn_plugin_failure_to_string (reason), reason);
|
||||
_LOGW ("VPN plugin: failed: %s (%d)", vpn_plugin_failure_to_string_a (reason), reason);
|
||||
|
||||
switch (reason) {
|
||||
case NM_VPN_PLUGIN_FAILURE_LOGIN_FAILED:
|
||||
|
|
@ -916,7 +917,8 @@ NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_vpn_service_state_to_string, NMVpnServiceSta
|
|||
NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_SERVICE_STATE_STOPPING, "stopping"),
|
||||
NM_UTILS_LOOKUP_STR_ITEM (NM_VPN_SERVICE_STATE_STOPPED, "stopped"),
|
||||
);
|
||||
#define vpn_service_state_to_string(state) NM_UTILS_LOOKUP_STR (_vpn_service_state_to_string, state)
|
||||
|
||||
#define vpn_service_state_to_string_a(state) NM_UTILS_LOOKUP_STR_A (_vpn_service_state_to_string, state)
|
||||
|
||||
NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_vpn_state_to_string, VpnState,
|
||||
NM_UTILS_LOOKUP_DEFAULT (NULL),
|
||||
|
|
@ -932,7 +934,8 @@ NM_UTILS_LOOKUP_STR_DEFINE_STATIC (_vpn_state_to_string, VpnState,
|
|||
NM_UTILS_LOOKUP_STR_ITEM (STATE_DISCONNECTED, "disconnected"),
|
||||
NM_UTILS_LOOKUP_STR_ITEM (STATE_FAILED, "failed"),
|
||||
);
|
||||
#define vpn_state_to_string(state) NM_UTILS_LOOKUP_STR (_vpn_state_to_string, state)
|
||||
|
||||
#define vpn_state_to_string_a(state) NM_UTILS_LOOKUP_STR_A (_vpn_state_to_string, state)
|
||||
|
||||
static void
|
||||
plugin_state_changed (NMVpnConnection *self, NMVpnServiceState new_service_state)
|
||||
|
|
@ -941,7 +944,7 @@ plugin_state_changed (NMVpnConnection *self, NMVpnServiceState new_service_state
|
|||
NMVpnServiceState old_service_state = priv->service_state;
|
||||
|
||||
_LOGI ("VPN plugin: state changed: %s (%d)",
|
||||
vpn_service_state_to_string (new_service_state), new_service_state);
|
||||
vpn_service_state_to_string_a (new_service_state), new_service_state);
|
||||
priv->service_state = new_service_state;
|
||||
|
||||
if (new_service_state == NM_VPN_SERVICE_STATE_STOPPED) {
|
||||
|
|
@ -2690,12 +2693,12 @@ plugin_interactive_secrets_required (NMVpnConnection *self,
|
|||
if (!NM_IN_SET (priv->vpn_state, STATE_CONNECT,
|
||||
STATE_NEED_AUTH)) {
|
||||
_LOGD ("VPN plugin: requested secrets; state %s (%d); ignore request in current state",
|
||||
vpn_state_to_string (priv->vpn_state), priv->vpn_state);
|
||||
vpn_state_to_string_a (priv->vpn_state), priv->vpn_state);
|
||||
return;
|
||||
}
|
||||
|
||||
_LOGI ("VPN plugin: requested secrets; state %s (%d)",
|
||||
vpn_state_to_string (priv->vpn_state), priv->vpn_state);
|
||||
vpn_state_to_string_a (priv->vpn_state), priv->vpn_state);
|
||||
|
||||
priv->secrets_idx = SECRETS_REQ_INTERACTIVE;
|
||||
_set_vpn_state (self, STATE_NEED_AUTH, NM_ACTIVE_CONNECTION_STATE_REASON_NONE, FALSE);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue