From 40183fb69ae41549f3fa90c317d1000e8a4effc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Radovan=20=C4=8Cerven=C3=BD?= <radovan.cerveny@gmail.com> Date: Sun, 7 Feb 2016 20:12:58 +0100 Subject: [PATCH] changed hints to a template function --- alib2algo/src/measurements/MeasurementEngine.cpp | 3 ++- alib2algo/src/measurements/MeasurementEngine.hpp | 3 ++- alib2algo/src/measurements/MeasurementNew.cpp | 4 ++-- alib2algo/src/measurements/measurements.hpp | 5 +++-- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/alib2algo/src/measurements/MeasurementEngine.cpp b/alib2algo/src/measurements/MeasurementEngine.cpp index fbbfe7eca1..91ad5d18fb 100644 --- a/alib2algo/src/measurements/MeasurementEngine.cpp +++ b/alib2algo/src/measurements/MeasurementEngine.cpp @@ -48,7 +48,8 @@ MeasurementResults MeasurementEngine::get_results ( ) const { return MeasurementResults ( frames ); } -void MeasurementEngine::memory_hint ( MemoryHint mh ) { +template < > +void MeasurementEngine::hint ( MemoryHint mh ) { if ( ( frame_idx_stack.size ( ) == 0 ) || ( frames[frame_idx_stack.back ( )].type == measurements::Type::ROOT ) ) return; MemoryDataFrame::hint ( frame_idx_stack.back ( ), frames, std::move ( mh ) ); diff --git a/alib2algo/src/measurements/MeasurementEngine.hpp b/alib2algo/src/measurements/MeasurementEngine.hpp index f0f75c6748..b56641db67 100644 --- a/alib2algo/src/measurements/MeasurementEngine.hpp +++ b/alib2algo/src/measurements/MeasurementEngine.hpp @@ -23,7 +23,8 @@ public: void reset_measurements ( ); MeasurementResults get_results ( ) const; - void memory_hint ( MemoryHint ); + template < typename Hint > + void hint ( Hint ); static MeasurementEngine INSTANCE; }; diff --git a/alib2algo/src/measurements/MeasurementNew.cpp b/alib2algo/src/measurements/MeasurementNew.cpp index 4be528a7e7..b2d53fbc5b 100644 --- a/alib2algo/src/measurements/MeasurementNew.cpp +++ b/alib2algo/src/measurements/MeasurementNew.cpp @@ -22,7 +22,7 @@ void * operator new( std::size_t n, bool measure ) { // send it to the engine if it does not come from stealth allocation if ( measure ) - measurements::memory_hint ( { measurements::MemoryHint::Type::NEW, n } ); + measurements::hint ( measurements::MemoryHint { measurements::MemoryHint::Type::NEW, n } ); return static_cast < void * > ( sptr ); } @@ -48,7 +48,7 @@ void operator delete( void * ptr, bool measure ) noexcept { // read the block size and send it to the engine if it does not come from stealth allocation if ( measure ) - measurements::memory_hint ( { measurements::MemoryHint::Type::DELETE, * sptr } ); + measurements::hint ( measurements::MemoryHint { measurements::MemoryHint::Type::DELETE, * sptr } ); std::free ( sptr ); } diff --git a/alib2algo/src/measurements/measurements.hpp b/alib2algo/src/measurements/measurements.hpp index ecdf40ad3c..f3bf7f2a6d 100644 --- a/alib2algo/src/measurements/measurements.hpp +++ b/alib2algo/src/measurements/measurements.hpp @@ -25,8 +25,9 @@ MeasurementResults results ( ) { return MeasurementEngine::INSTANCE.get_results ( ); } -void memory_hint ( MemoryHint mh ) { - MeasurementEngine::INSTANCE.memory_hint ( std::move ( mh ) ); +template < typename Hint > +void hint ( Hint hint ) { + MeasurementEngine::INSTANCE.hint ( std::move ( hint ) ); } } -- GitLab