diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2018-05-16 15:20:39 +0200 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2018-05-16 15:20:43 +0200 |
commit | 0b0748a4be1a35673312e08196611b83a2dcb9af (patch) | |
tree | f0c4e3b5fd38ab897cace43d264f5740c9419014 /src/rlc.h | |
parent | 45143d270c9c2f1ce4e102fbb1c0456a8e39d787 (diff) |
tbf: Fix memset(0) on object with no trivial copy-assignment
As warned by gcc 8.1.0:
osmo-pcu/src/tbf.cpp: In constructor ‘gprs_rlcmac_tbf::gprs_rlcmac_tbf(BTS*, gprs_rlcmac_tbf_direction)’:
osmo-pcu/src/tbf.cpp:222:33: error: ‘void* memset(void*, int, size_t)’ clearing an object of type ‘struct gprs_rlc’ with no trivial copy-assignment; use assignment or value-initialization instead [-Werror=class-memaccess]
memset(&m_rlc, 0, sizeof(m_rlc));
^
In file included from osmo-pcu/src/tbf.h:24,
from osmo-pcu/src/bts.h:37,
from osmo-pcu/src/tbf.cpp:22:
osmo-pcu/src/rlc.h:234:8: note: ‘struct gprs_rlc’ declared here
struct gprs_rlc {
^~~~~~~~
Change-Id: Ifb0529b9ae6cd4300e5cbbd9151054792edbfe06
Diffstat (limited to 'src/rlc.h')
-rw-r--r-- | src/rlc.h | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -24,6 +24,7 @@ #include <osmocom/core/endian.h> #include <stdint.h> +#include <string.h> #define RLC_GPRS_SNS 128 /* GPRS, must be power of 2 */ #define RLC_GPRS_WS 64 /* max window size */ @@ -232,6 +233,7 @@ void gprs_update_punct_scheme(enum egprs_puncturing_values *punct, * the routines to manipulate these arrays. */ struct gprs_rlc { + void init(); gprs_rlc_data *block(int bsn); gprs_rlc_data m_blocks[RLC_MAX_SNS/2]; }; @@ -647,6 +649,11 @@ inline gprs_rlc_ul_bsn_state gprs_rlc_v_n::state(int bsn) const return m_v_n[bsn & mod_sns_half()]; } +inline void gprs_rlc::init() +{ + memset(m_blocks, 0, sizeof(m_blocks)); +} + inline gprs_rlc_data *gprs_rlc::block(int bsn) { return &m_blocks[bsn & mod_sns_half()]; |