1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-01-17 00:44:19 +00:00

Added a couple of useful constructors to some stream classes. Replaced some old static functions with anonymous namespaces.

This commit is contained in:
Julian Storer 2010-10-26 16:46:19 +01:00
parent 1577be257c
commit 377b9ff2c4
65 changed files with 1844 additions and 1632 deletions

View file

@ -34,46 +34,49 @@ BEGIN_JUCE_NAMESPACE
StringPool::StringPool() throw() {}
StringPool::~StringPool() {}
template <class StringType>
static const juce_wchar* getPooledStringFromArray (Array<String>& strings, StringType newString)
namespace StringPoolHelpers
{
int start = 0;
int end = strings.size();
for (;;)
template <class StringType>
const juce_wchar* getPooledStringFromArray (Array<String>& strings, StringType newString)
{
if (start >= end)
int start = 0;
int end = strings.size();
for (;;)
{
jassert (start <= end);
strings.insert (start, newString);
return strings.getReference (start);
}
else
{
const String& startString = strings.getReference (start);
if (startString == newString)
return startString;
const int halfway = (start + end) >> 1;
if (halfway == start)
if (start >= end)
{
if (startString.compare (newString) < 0)
++start;
jassert (start <= end);
strings.insert (start, newString);
return strings.getReference (start);
}
const int comp = strings.getReference (halfway).compare (newString);
if (comp == 0)
return strings.getReference (halfway);
else if (comp < 0)
start = halfway;
else
end = halfway;
{
const String& startString = strings.getReference (start);
if (startString == newString)
return startString;
const int halfway = (start + end) >> 1;
if (halfway == start)
{
if (startString.compare (newString) < 0)
++start;
strings.insert (start, newString);
return strings.getReference (start);
}
const int comp = strings.getReference (halfway).compare (newString);
if (comp == 0)
return strings.getReference (halfway);
else if (comp < 0)
start = halfway;
else
end = halfway;
}
}
}
}
@ -83,7 +86,7 @@ const juce_wchar* StringPool::getPooledString (const String& s)
if (s.isEmpty())
return String::empty;
return getPooledStringFromArray (strings, s);
return StringPoolHelpers::getPooledStringFromArray (strings, s);
}
const juce_wchar* StringPool::getPooledString (const char* const s)
@ -91,7 +94,7 @@ const juce_wchar* StringPool::getPooledString (const char* const s)
if (s == 0 || *s == 0)
return String::empty;
return getPooledStringFromArray (strings, s);
return StringPoolHelpers::getPooledStringFromArray (strings, s);
}
const juce_wchar* StringPool::getPooledString (const juce_wchar* const s)
@ -99,7 +102,7 @@ const juce_wchar* StringPool::getPooledString (const juce_wchar* const s)
if (s == 0 || *s == 0)
return String::empty;
return getPooledStringFromArray (strings, s);
return StringPoolHelpers::getPooledStringFromArray (strings, s);
}
int StringPool::size() const throw()