adding |nsWork[C]String| classes

This commit is contained in:
scc%mozilla.org 2000-06-14 05:41:05 +00:00
parent 7141bc89e6
commit 22deb21d5b
4 changed files with 27 additions and 21 deletions

View File

@ -25,6 +25,8 @@
#include "nsWorkString.h"
static const PRUint32 kInitialWorkStringCapacity = 32;
void
nsWorkString::SetLength( PRUint32 aNewLength )
{
@ -35,7 +37,7 @@ nsWorkString::SetLength( PRUint32 aNewLength )
newCapacity += newCapacity;
SetCapacity(newCapacity);
}
inherited::SetLength(aNewLength);
nsString::SetLength(aNewLength);
}
void
@ -43,10 +45,10 @@ nsWorkCString::SetLength( PRUint32 aNewLength )
{
if ( aNewLength > mCapacity )
{
PRUint32 newCapacity = mCapacity ? mCapacity : kInitialWorkCStringCapacity;
PRUint32 newCapacity = mCapacity ? mCapacity : kInitialWorkStringCapacity;
while ( newCapacity < aNewLength )
newCapacity += newCapacity;
SetCapacity(newCapacity);
}
inherited::SetLength(aNewLength);
nsCString::SetLength(aNewLength);
}

View File

@ -37,32 +37,22 @@
class NS_COM nsWorkString : public nsString
{
private:
typedef nsString inherited;
public:
static const PRUint32 kInitialWorkStringCapacity = 32;
nsWorkString() : inherited() { }
nsWorkString( const nsAReadableString& aReadable ) : inherited(aReadable) { }
nsWorkString( const PRUnichar* aString, PRUint32 aLength ) : inherited(aString, PRInt32(aLength)) { }
nsWorkString( const PRUnichar* aString ) : inherited(aString) { }
nsWorkString() : nsString() { }
nsWorkString( const nsAReadableString& aReadable ) : nsString(aReadable) { }
nsWorkString( const PRUnichar* aString, PRUint32 aLength ) : nsString(aString, PRInt32(aLength)) { }
nsWorkString( const PRUnichar* aString ) : nsString(aString) { }
virtual void SetLength( PRUint32 aNewLength );
};
class NS_COM nsWorkCString : public nsCString
{
private:
typedef nsCString inherited;
public:
static const PRUint32 kInitialWorkCStringCapacity = 32;
nsWorkCString() : inherited() { }
nsWorkCString( const nsAReadableCString& aReadable ) : inherited(aReadable) { }
nsWorkCString( const char* aString, PRUint32 aLength ) : inherited(aString, PRInt32(aLength)) { }
nsWorkCString( const char* aString ) : inherited(aString) { }
nsWorkCString() : nsCString() { }
nsWorkCString( const nsAReadableCString& aReadable ) : nsCString(aReadable) { }
nsWorkCString( const char* aString, PRUint32 aLength ) : nsCString(aString, PRInt32(aLength)) { }
nsWorkCString( const char* aString ) : nsCString(aString) { }
virtual void SetLength( PRUint32 aNewLength );
};

View File

@ -6,6 +6,7 @@
#include "nsString.h"
#include "nsSharedString.h"
#include "nsWorkString.h"
#ifdef TEST_STD_STRING
#include "nsStdStringWrapper.h"
@ -423,6 +424,19 @@ main()
}
}
{
nsWorkCString s16("He");
s16.Append("llo");
if ( int failures = test_readable_hello(s16) )
{
tests_failed += failures;
cout << "FAILED to append to a work string." << endl;
}
}
{
nsLiteralCString str1("Hello");
nsStdCString str2("Hello");