From 89203ce35c9bb29b79329fcb5c1c55c2287e921e Mon Sep 17 00:00:00 2001 From: John Romein <romein@astron.nl> Date: Tue, 8 Sep 2009 12:22:38 +0000 Subject: [PATCH] bug 225: Initialize (padded) memory blocks in case valgrind is used. --- .../Interface/include/Interface/CN_Configuration.h | 3 ++- RTCP/Interface/include/Interface/SubbandMetaData.h | 4 ++++ RTCP/Interface/src/CN_Configuration.cc | 14 ++++++++++++++ RTCP/Interface/src/CN_Mode.cc | 11 +++++++++++ 4 files changed, 31 insertions(+), 1 deletion(-) diff --git a/RTCP/Interface/include/Interface/CN_Configuration.h b/RTCP/Interface/include/Interface/CN_Configuration.h index 7c03de08122..0d642e28766 100644 --- a/RTCP/Interface/include/Interface/CN_Configuration.h +++ b/RTCP/Interface/include/Interface/CN_Configuration.h @@ -29,6 +29,7 @@ #include <Interface/PencilCoordinates.h> #include <Interface/Parset.h> +#include <cstring> #include <vector> #include <string> @@ -38,7 +39,7 @@ namespace RTCP { class CN_Configuration { public: - CN_Configuration() {} + CN_Configuration(); #if !defined HAVE_BGP_CN CN_Configuration(const Parset &parset); diff --git a/RTCP/Interface/include/Interface/SubbandMetaData.h b/RTCP/Interface/include/Interface/SubbandMetaData.h index 6db7266d7eb..ded982d45c9 100644 --- a/RTCP/Interface/include/Interface/SubbandMetaData.h +++ b/RTCP/Interface/include/Interface/SubbandMetaData.h @@ -30,6 +30,7 @@ #include <Common/LofarLogger.h> #include <cassert> +#include <cstring> namespace LOFAR { @@ -105,6 +106,9 @@ inline SubbandMetaData::SubbandMetaData(unsigned nrSubbands, unsigned nrBeams, s itsMarshallData(static_cast<char*>(allocator.allocate(itsMarshallDataSize, alignment))), itsAllocator(allocator) { +#if defined HAVE_VALGRIND + memset(itsMarshallData, 0, itsMarshallDataSize); +#endif } inline SubbandMetaData::~SubbandMetaData() diff --git a/RTCP/Interface/src/CN_Configuration.cc b/RTCP/Interface/src/CN_Configuration.cc index 46773bea40b..bdcc64292fb 100644 --- a/RTCP/Interface/src/CN_Configuration.cc +++ b/RTCP/Interface/src/CN_Configuration.cc @@ -23,14 +23,28 @@ #include <Interface/CN_Configuration.h> #include <cassert> +#include <cstring> namespace LOFAR { namespace RTCP { + +CN_Configuration::CN_Configuration() +{ +#if defined HAVE_VALGRIND + memset(&itsMarshalledData, 0, sizeof itsMarshalledData); +#endif +} + + #if ! defined HAVE_BGP_CN CN_Configuration::CN_Configuration(const Parset &parset) { +#if defined HAVE_VALGRIND + memset(&itsMarshalledData, 0, sizeof itsMarshalledData); +#endif + nrStations() = parset.nrStations(); nrBitsPerSample() = parset.nrBitsPerSample(); nrSubbands() = parset.nrSubbands(); diff --git a/RTCP/Interface/src/CN_Mode.cc b/RTCP/Interface/src/CN_Mode.cc index 0c35ec8a864..9e200e15c7a 100644 --- a/RTCP/Interface/src/CN_Mode.cc +++ b/RTCP/Interface/src/CN_Mode.cc @@ -2,6 +2,9 @@ #include <Interface/CN_Mode.h> +#include <cstring> + + namespace LOFAR { namespace RTCP { @@ -23,6 +26,10 @@ unsigned CN_Mode::nrModes() CN_Mode::CN_Mode() { +#if defined HAVE_VALGRIND + memset(&itsMarshalledData, 0, sizeof itsMarshalledData); +#endif + itsMarshalledData.mode = INVALID; } @@ -33,6 +40,10 @@ CN_Mode::CN_Mode(const Parset &ps) { string name = ps.getModeName(); +#if defined HAVE_VALGRIND + memset(&itsMarshalledData, 0, sizeof itsMarshalledData); +#endif + itsMarshalledData.mode = INVALID; for (unsigned i = 0; i < nrModes(); i ++) { -- GitLab