[gparted] Pass message parameters by reference to 2 Partition methods (#788813)
- From: Curtis Gedak <gedakc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gparted] Pass message parameters by reference to 2 Partition methods (#788813)
- Date: Sun, 24 Mar 2019 17:15:56 +0000 (UTC)
commit 454ac64d1905ade9576cd09bb9ef5555d795c619
Author: Mike Fleetwood <mike fleetwood googlemail com>
Date: Sat Mar 23 10:19:09 2019 +0000
Pass message parameters by reference to 2 Partition methods (#788813)
Note that this almost certainly has no performance benefit what so ever
because the methods are implicitly defined as inline [1][2] and the
compiler will have simply inlined the method bodies thus avoiding having
to construct copies of the passed parameters.
Do this anyway as constant objects are typically passed by reference
[3]. Also C++'s std::vector::push_back() [4] takes a const reference
parameter so update the kind of equivalent push_back_message() to take
a const reference parameter too.
[1] C++ reference / inline specifier
https://en.cppreference.com/w/cpp/language/inline
A function defined entirely inside a class/struct/union
definition, whether it's a member function or a non-member
friend function, is implicitly an inline function.
[2] When should I write the keyword 'inline' for a function/method?
https://stackoverflow.com/questions/1759300/when-should-i-write-the-keyword-inline-for-a-function-method/1759575#1759575
[3] How to pass objects to functions in C++?
https://stackoverflow.com/questions/2139224/how-to-pass-objects-to-functions-in-c/2139254#2139254
[4] C++ reference / std::vector::push
https://en.cppreference.com/w/cpp/container/vector/push_back
void push_back(const T& value);
Bug 788813 - gparted-0.30.0/include/Partition.h:137]: performance
problem
include/Partition.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
---
diff --git a/include/Partition.h b/include/Partition.h
index da2dac2b..87b103ca 100644
--- a/include/Partition.h
+++ b/include/Partition.h
@@ -133,8 +133,8 @@ public:
virtual bool have_messages() const { return ! messages.empty(); };
virtual std::vector<Glib::ustring> get_messages() const { return messages; };
virtual void clear_messages() { messages.clear(); };
- void push_back_message( Glib::ustring msg ) { messages.push_back( msg ); };
- void append_messages( const std::vector<Glib::ustring> msgs )
+ void push_back_message(const Glib::ustring& msg) { messages.push_back(msg); };
+ void append_messages(const std::vector<Glib::ustring>& msgs)
{ messages.insert( messages.end(), msgs.begin(), msgs.end() ); }
// Interface to return reference to the Partition object directly containing the
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]