From c0e631b1ea47fa368034fcd9c25bdffb947f6e71 Mon Sep 17 00:00:00 2001 From: "scc%mozilla.org" Date: Fri, 6 Apr 2001 14:04:29 +0000 Subject: [PATCH] bug #74866, r=dbaron, sr=shaver. |nsPromiseFlat[C]String| needs to forward more functions when the promised string doesn't implement the buffer handle magic, i.e., in |ns[C]String| derived classes. Also change |char_type| back to the real type because jag suggests it's more readable that way. git-svn-id: svn://10.0.0.236/trunk@91574 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/string/public/nsAFlatString.h | 6 +- mozilla/string/public/nsPromiseFlatString.h | 36 ++++++++--- mozilla/string/src/nsPromiseFlatString.cpp | 59 +++++++++++++++---- mozilla/xpcom/string/public/nsAFlatString.h | 6 +- .../xpcom/string/public/nsPromiseFlatString.h | 36 ++++++++--- .../xpcom/string/src/nsPromiseFlatString.cpp | 59 +++++++++++++++---- 6 files changed, 158 insertions(+), 44 deletions(-) diff --git a/mozilla/string/public/nsAFlatString.h b/mozilla/string/public/nsAFlatString.h index 6cb6d9f4a65..bf58c69ae0f 100644 --- a/mozilla/string/public/nsAFlatString.h +++ b/mozilla/string/public/nsAFlatString.h @@ -41,7 +41,8 @@ class NS_COM nsAFlatString virtual PRUint32 Length() const { return PRUint32(GetBufferHandle()->DataLength()); } - protected: +// protected: // can't hide these (yet), since I call them from forwarding routines in |nsPromiseFlatString| + public: virtual const PRUnichar* GetReadableFragment( nsReadableFragment&, nsFragmentRequest, PRUint32 ) const; virtual PRUnichar* GetWritableFragment( nsWritableFragment&, nsFragmentRequest, PRUint32 ); }; @@ -57,7 +58,8 @@ class NS_COM nsAFlatCString virtual PRUint32 Length() const { return PRUint32(GetBufferHandle()->DataLength()); } - protected: +// protected: // can't hide these (yet), since I call them from forwarding routines in |nsPromiseFlatCString| + public: virtual const char* GetReadableFragment( nsReadableFragment&, nsFragmentRequest, PRUint32 ) const; virtual char* GetWritableFragment( nsWritableFragment&, nsFragmentRequest, PRUint32 ); }; diff --git a/mozilla/string/public/nsPromiseFlatString.h b/mozilla/string/public/nsPromiseFlatString.h index 1c23bd05945..e7ba8e90bbf 100644 --- a/mozilla/string/public/nsPromiseFlatString.h +++ b/mozilla/string/public/nsPromiseFlatString.h @@ -87,15 +87,25 @@ class NS_COM nsPromiseFlatString public: nsPromiseFlatString( const nsPromiseFlatString& ); - virtual const PRUnichar* get() const; // this will be gone after we fix obsolete/nsString protected: nsPromiseFlatString() : mPromisedString(&mFlattenedString) { } explicit nsPromiseFlatString( const nsAString& aString ); - virtual const nsBufferHandle* GetFlatBufferHandle() const; - virtual const nsBufferHandle* GetBufferHandle() const; - virtual const nsSharedBufferHandle* GetSharedBufferHandle() const; + // things we want to forward to the string we are promising + virtual const nsBufferHandle* GetFlatBufferHandle() const; + virtual const nsBufferHandle* GetBufferHandle() const; + virtual const nsSharedBufferHandle* GetSharedBufferHandle() const; + virtual PRBool Promises( const nsAString& ) const; + + + // things we are forwarding now, but won't when we finally fix obsolete/nsString et al + public: + virtual const PRUnichar* get() const; + virtual PRUint32 Length() const; + protected: + virtual const PRUnichar* GetReadableFragment( nsReadableFragment&, nsFragmentRequest, PRUint32 ) const; + private: // NOT TO BE IMPLEMENTED @@ -113,15 +123,25 @@ class NS_COM nsPromiseFlatCString public: nsPromiseFlatCString( const nsPromiseFlatCString& ); - virtual const char* get() const; // this will be gone after we fix obsolete/nsString protected: nsPromiseFlatCString() : mPromisedString(&mFlattenedString) { } explicit nsPromiseFlatCString( const nsACString& aString ); - virtual const nsBufferHandle* GetFlatBufferHandle() const; - virtual const nsBufferHandle* GetBufferHandle() const; - virtual const nsSharedBufferHandle* GetSharedBufferHandle() const; + // things we want to forward to the string we are promising + virtual const nsBufferHandle* GetFlatBufferHandle() const; + virtual const nsBufferHandle* GetBufferHandle() const; + virtual const nsSharedBufferHandle* GetSharedBufferHandle() const; + virtual PRBool Promises( const nsACString& ) const; + + + // things we are forwarding now, but won't when we finally fix obsolete/nsString et al + public: + virtual const char* get() const; + virtual PRUint32 Length() const; + protected: + virtual const char* GetReadableFragment( nsReadableFragment&, nsFragmentRequest, PRUint32 ) const; + private: // NOT TO BE IMPLEMENTED diff --git a/mozilla/string/src/nsPromiseFlatString.cpp b/mozilla/string/src/nsPromiseFlatString.cpp index 4dbc38862a0..10b368dfb79 100644 --- a/mozilla/string/src/nsPromiseFlatString.cpp +++ b/mozilla/string/src/nsPromiseFlatString.cpp @@ -44,12 +44,6 @@ nsPromiseFlatString::nsPromiseFlatString( const nsAString& aString ) } } -const PRUnichar* -nsPromiseFlatString::get() const - { - return mPromisedString->get(); - } - const nsBufferHandle* nsPromiseFlatString::GetFlatBufferHandle() const { @@ -68,6 +62,29 @@ nsPromiseFlatString::GetSharedBufferHandle() const return mPromisedString->GetSharedBufferHandle(); } +PRBool +nsPromiseFlatString::Promises( const nsAString& aString ) const + { + return mPromisedString->Promises(aString); + } + +const PRUnichar* +nsPromiseFlatString::get() const + { + return mPromisedString->get(); + } + +PRUint32 +nsPromiseFlatString::Length() const + { + return mPromisedString->Length(); + } + +const PRUnichar* +nsPromiseFlatString::GetReadableFragment( nsReadableFragment& aFragment, nsFragmentRequest aRequest, PRUint32 aOffset ) const + { + return mPromisedString->GetReadableFragment(aFragment, aRequest, aOffset); + } @@ -91,12 +108,6 @@ nsPromiseFlatCString::nsPromiseFlatCString( const nsACString& aString ) } } -const char* -nsPromiseFlatCString::get() const - { - return mPromisedString->get(); - } - const nsBufferHandle* nsPromiseFlatCString::GetFlatBufferHandle() const { @@ -114,3 +125,27 @@ nsPromiseFlatCString::GetSharedBufferHandle() const { return mPromisedString->GetSharedBufferHandle(); } + +PRBool +nsPromiseFlatCString::Promises( const nsACString& aString ) const + { + return mPromisedString->Promises(aString); + } + +const char* +nsPromiseFlatCString::get() const + { + return mPromisedString->get(); + } + +PRUint32 +nsPromiseFlatCString::Length() const + { + return mPromisedString->Length(); + } + +const char* +nsPromiseFlatCString::GetReadableFragment( nsReadableFragment& aFragment, nsFragmentRequest aRequest, PRUint32 aOffset ) const + { + return mPromisedString->GetReadableFragment(aFragment, aRequest, aOffset); + } diff --git a/mozilla/xpcom/string/public/nsAFlatString.h b/mozilla/xpcom/string/public/nsAFlatString.h index 6cb6d9f4a65..bf58c69ae0f 100644 --- a/mozilla/xpcom/string/public/nsAFlatString.h +++ b/mozilla/xpcom/string/public/nsAFlatString.h @@ -41,7 +41,8 @@ class NS_COM nsAFlatString virtual PRUint32 Length() const { return PRUint32(GetBufferHandle()->DataLength()); } - protected: +// protected: // can't hide these (yet), since I call them from forwarding routines in |nsPromiseFlatString| + public: virtual const PRUnichar* GetReadableFragment( nsReadableFragment&, nsFragmentRequest, PRUint32 ) const; virtual PRUnichar* GetWritableFragment( nsWritableFragment&, nsFragmentRequest, PRUint32 ); }; @@ -57,7 +58,8 @@ class NS_COM nsAFlatCString virtual PRUint32 Length() const { return PRUint32(GetBufferHandle()->DataLength()); } - protected: +// protected: // can't hide these (yet), since I call them from forwarding routines in |nsPromiseFlatCString| + public: virtual const char* GetReadableFragment( nsReadableFragment&, nsFragmentRequest, PRUint32 ) const; virtual char* GetWritableFragment( nsWritableFragment&, nsFragmentRequest, PRUint32 ); }; diff --git a/mozilla/xpcom/string/public/nsPromiseFlatString.h b/mozilla/xpcom/string/public/nsPromiseFlatString.h index 1c23bd05945..e7ba8e90bbf 100644 --- a/mozilla/xpcom/string/public/nsPromiseFlatString.h +++ b/mozilla/xpcom/string/public/nsPromiseFlatString.h @@ -87,15 +87,25 @@ class NS_COM nsPromiseFlatString public: nsPromiseFlatString( const nsPromiseFlatString& ); - virtual const PRUnichar* get() const; // this will be gone after we fix obsolete/nsString protected: nsPromiseFlatString() : mPromisedString(&mFlattenedString) { } explicit nsPromiseFlatString( const nsAString& aString ); - virtual const nsBufferHandle* GetFlatBufferHandle() const; - virtual const nsBufferHandle* GetBufferHandle() const; - virtual const nsSharedBufferHandle* GetSharedBufferHandle() const; + // things we want to forward to the string we are promising + virtual const nsBufferHandle* GetFlatBufferHandle() const; + virtual const nsBufferHandle* GetBufferHandle() const; + virtual const nsSharedBufferHandle* GetSharedBufferHandle() const; + virtual PRBool Promises( const nsAString& ) const; + + + // things we are forwarding now, but won't when we finally fix obsolete/nsString et al + public: + virtual const PRUnichar* get() const; + virtual PRUint32 Length() const; + protected: + virtual const PRUnichar* GetReadableFragment( nsReadableFragment&, nsFragmentRequest, PRUint32 ) const; + private: // NOT TO BE IMPLEMENTED @@ -113,15 +123,25 @@ class NS_COM nsPromiseFlatCString public: nsPromiseFlatCString( const nsPromiseFlatCString& ); - virtual const char* get() const; // this will be gone after we fix obsolete/nsString protected: nsPromiseFlatCString() : mPromisedString(&mFlattenedString) { } explicit nsPromiseFlatCString( const nsACString& aString ); - virtual const nsBufferHandle* GetFlatBufferHandle() const; - virtual const nsBufferHandle* GetBufferHandle() const; - virtual const nsSharedBufferHandle* GetSharedBufferHandle() const; + // things we want to forward to the string we are promising + virtual const nsBufferHandle* GetFlatBufferHandle() const; + virtual const nsBufferHandle* GetBufferHandle() const; + virtual const nsSharedBufferHandle* GetSharedBufferHandle() const; + virtual PRBool Promises( const nsACString& ) const; + + + // things we are forwarding now, but won't when we finally fix obsolete/nsString et al + public: + virtual const char* get() const; + virtual PRUint32 Length() const; + protected: + virtual const char* GetReadableFragment( nsReadableFragment&, nsFragmentRequest, PRUint32 ) const; + private: // NOT TO BE IMPLEMENTED diff --git a/mozilla/xpcom/string/src/nsPromiseFlatString.cpp b/mozilla/xpcom/string/src/nsPromiseFlatString.cpp index 4dbc38862a0..10b368dfb79 100644 --- a/mozilla/xpcom/string/src/nsPromiseFlatString.cpp +++ b/mozilla/xpcom/string/src/nsPromiseFlatString.cpp @@ -44,12 +44,6 @@ nsPromiseFlatString::nsPromiseFlatString( const nsAString& aString ) } } -const PRUnichar* -nsPromiseFlatString::get() const - { - return mPromisedString->get(); - } - const nsBufferHandle* nsPromiseFlatString::GetFlatBufferHandle() const { @@ -68,6 +62,29 @@ nsPromiseFlatString::GetSharedBufferHandle() const return mPromisedString->GetSharedBufferHandle(); } +PRBool +nsPromiseFlatString::Promises( const nsAString& aString ) const + { + return mPromisedString->Promises(aString); + } + +const PRUnichar* +nsPromiseFlatString::get() const + { + return mPromisedString->get(); + } + +PRUint32 +nsPromiseFlatString::Length() const + { + return mPromisedString->Length(); + } + +const PRUnichar* +nsPromiseFlatString::GetReadableFragment( nsReadableFragment& aFragment, nsFragmentRequest aRequest, PRUint32 aOffset ) const + { + return mPromisedString->GetReadableFragment(aFragment, aRequest, aOffset); + } @@ -91,12 +108,6 @@ nsPromiseFlatCString::nsPromiseFlatCString( const nsACString& aString ) } } -const char* -nsPromiseFlatCString::get() const - { - return mPromisedString->get(); - } - const nsBufferHandle* nsPromiseFlatCString::GetFlatBufferHandle() const { @@ -114,3 +125,27 @@ nsPromiseFlatCString::GetSharedBufferHandle() const { return mPromisedString->GetSharedBufferHandle(); } + +PRBool +nsPromiseFlatCString::Promises( const nsACString& aString ) const + { + return mPromisedString->Promises(aString); + } + +const char* +nsPromiseFlatCString::get() const + { + return mPromisedString->get(); + } + +PRUint32 +nsPromiseFlatCString::Length() const + { + return mPromisedString->Length(); + } + +const char* +nsPromiseFlatCString::GetReadableFragment( nsReadableFragment& aFragment, nsFragmentRequest aRequest, PRUint32 aOffset ) const + { + return mPromisedString->GetReadableFragment(aFragment, aRequest, aOffset); + }