mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00:00
Added the move constructor to cString for better performance
This commit is contained in:
parent
88b1e30494
commit
5d984b606e
@ -2560,6 +2560,7 @@ Markus Ehrnsperger <markus.ehrnsperger@googlemail.com>
|
|||||||
for making using a dummy OSD if no OSD provider is available not be considered an error
|
for making using a dummy OSD if no OSD provider is available not be considered an error
|
||||||
any more
|
any more
|
||||||
for removing syslog calls in child process after fork()
|
for removing syslog calls in child process after fork()
|
||||||
|
for adding the move constructor to cString for better performance
|
||||||
|
|
||||||
Werner Färber <w.faerber@gmx.de>
|
Werner Färber <w.faerber@gmx.de>
|
||||||
for reporting a bug in handling the cPluginManager::Active() result when pressing
|
for reporting a bug in handling the cPluginManager::Active() result when pressing
|
||||||
|
4
HISTORY
4
HISTORY
@ -9863,7 +9863,7 @@ Video Disk Recorder Revision History
|
|||||||
- The recording info of the default skins now shows the frame parameters of the
|
- The recording info of the default skins now shows the frame parameters of the
|
||||||
recording at the end of the description (if such information is available).
|
recording at the end of the description (if such information is available).
|
||||||
|
|
||||||
2024-01-19:
|
2024-01-20:
|
||||||
|
|
||||||
- Changed installing config files to handle potentially broken 'cp -n'.
|
- Changed installing config files to handle potentially broken 'cp -n'.
|
||||||
- Fixed height calculation in progress display (thanks to Matthias Senzel).
|
- Fixed height calculation in progress display (thanks to Matthias Senzel).
|
||||||
@ -9877,3 +9877,5 @@ Video Disk Recorder Revision History
|
|||||||
(thanks to Matthias Senzel).
|
(thanks to Matthias Senzel).
|
||||||
- Fixed an unnecessary double display of menu items in the Recordings menu (thanks to
|
- Fixed an unnecessary double display of menu items in the Recordings menu (thanks to
|
||||||
Matthias Senzel).
|
Matthias Senzel).
|
||||||
|
- Added the move constructor to cString for better performance (thanks to Markus
|
||||||
|
Ehrnsperger).
|
||||||
|
10
tools.c
10
tools.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: tools.c 5.8 2023/12/29 10:24:29 kls Exp $
|
* $Id: tools.c 5.9 2024/01/20 13:59:55 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "tools.h"
|
#include "tools.h"
|
||||||
@ -1106,6 +1106,14 @@ cString &cString::operator=(const cString &String)
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cString &cString::operator=(cString &&String)
|
||||||
|
{
|
||||||
|
free(s);
|
||||||
|
s = String.s;
|
||||||
|
String.s = NULL;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
cString &cString::operator=(const char *String)
|
cString &cString::operator=(const char *String)
|
||||||
{
|
{
|
||||||
if (s == String)
|
if (s == String)
|
||||||
|
4
tools.h
4
tools.h
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: tools.h 5.7 2023/12/29 10:21:59 kls Exp $
|
* $Id: tools.h 5.8 2024/01/20 13:59:55 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __TOOLS_H
|
#ifndef __TOOLS_H
|
||||||
@ -182,11 +182,13 @@ public:
|
|||||||
cString(const char *S = NULL, bool TakePointer = false);
|
cString(const char *S = NULL, bool TakePointer = false);
|
||||||
cString(const char *S, const char *To); ///< Copies S up to To (exclusive). To must be a valid pointer into S. If To is NULL, everything is copied.
|
cString(const char *S, const char *To); ///< Copies S up to To (exclusive). To must be a valid pointer into S. If To is NULL, everything is copied.
|
||||||
cString(const cString &String);
|
cString(const cString &String);
|
||||||
|
cString(cString &&String): s(String.s) { String.s = NULL; }
|
||||||
virtual ~cString();
|
virtual ~cString();
|
||||||
operator const void * () const { return s; } // to catch cases where operator*() should be used
|
operator const void * () const { return s; } // to catch cases where operator*() should be used
|
||||||
operator const char * () const { return s; } // for use in (const char *) context
|
operator const char * () const { return s; } // for use in (const char *) context
|
||||||
const char * operator*() const { return s; } // for use in (const void *) context (printf() etc.)
|
const char * operator*() const { return s; } // for use in (const void *) context (printf() etc.)
|
||||||
cString &operator=(const cString &String);
|
cString &operator=(const cString &String);
|
||||||
|
cString &operator=(cString &&String);
|
||||||
cString &operator=(const char *String);
|
cString &operator=(const char *String);
|
||||||
cString &Append(const char *String);
|
cString &Append(const char *String);
|
||||||
cString &Append(char c);
|
cString &Append(char c);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user