1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Added boolean return values to cVector's InsertUnique(), AppendUnique() and RemoveElement()

This commit is contained in:
Klaus Schmidinger 2015-01-14 09:09:06 +01:00
parent 24b38eb812
commit 6ba9de491c

23
tools.h
View File

@ -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 3.5 2015/01/12 12:13:33 kls Exp $ * $Id: tools.h 3.6 2015/01/14 09:09:06 kls Exp $
*/ */
#ifndef __TOOLS_H #ifndef __TOOLS_H
@ -557,10 +557,13 @@ public:
else else
Append(Data); Append(Data);
} }
void InsertUnique(T Data, int Before = 0) bool InsertUnique(T Data, int Before = 0)
{ {
if (IndexOf(Data) < 0) if (IndexOf(Data) < 0) {
Insert(Data, Before); Insert(Data, Before);
return true;
}
return false;
} }
virtual void Append(T Data) virtual void Append(T Data)
{ {
@ -568,10 +571,13 @@ public:
Realloc(allocated * 3 / 2); // increase size by 50% Realloc(allocated * 3 / 2); // increase size by 50%
data[size++] = Data; data[size++] = Data;
} }
void AppendUnique(T Data) bool AppendUnique(T Data)
{ {
if (IndexOf(Data) < 0) if (IndexOf(Data) < 0) {
Append(Data); Append(Data);
return true;
}
return false;
} }
virtual void Remove(int Index) virtual void Remove(int Index)
{ {
@ -581,11 +587,14 @@ public:
memmove(&data[Index], &data[Index + 1], (size - Index) * sizeof(T)); memmove(&data[Index], &data[Index + 1], (size - Index) * sizeof(T));
size--; size--;
} }
void RemoveElement(const T &Data) bool RemoveElement(const T &Data)
{ {
int i = IndexOf(Data); int i = IndexOf(Data);
if (i >= 0) if (i >= 0) {
Remove(i); Remove(i);
return true;
}
return false;
} }
virtual void Clear(void) virtual void Clear(void)
{ {