diff --git a/mozilla/string/public/nsAFlatString.h b/mozilla/string/public/nsAFlatString.h index bf58c69ae0f..c197bbf32ed 100644 --- a/mozilla/string/public/nsAFlatString.h +++ b/mozilla/string/public/nsAFlatString.h @@ -35,11 +35,11 @@ class NS_COM nsAFlatString { public: // don't really want this to be virtual, and won't after |obsolete_nsString| is really dead - virtual const PRUnichar* get() const { return GetBufferHandle()->DataStart(); } + virtual const PRUnichar* get() const; PRUnichar operator[]( PRUint32 i ) const { return get()[ i ]; } PRUnichar CharAt( PRUint32 ) const; - virtual PRUint32 Length() const { return PRUint32(GetBufferHandle()->DataLength()); } + virtual PRUint32 Length() const; // protected: // can't hide these (yet), since I call them from forwarding routines in |nsPromiseFlatString| public: @@ -52,11 +52,11 @@ class NS_COM nsAFlatCString { public: // don't really want this to be virtual, and won't after |obsolete_nsCString| is really dead - virtual const char* get() const { return GetBufferHandle()->DataStart(); } + virtual const char* get() const; char operator[]( PRUint32 i ) const { return get()[ i ]; } char CharAt( PRUint32 ) const; - virtual PRUint32 Length() const { return PRUint32(GetBufferHandle()->DataLength()); } + virtual PRUint32 Length() const; // protected: // can't hide these (yet), since I call them from forwarding routines in |nsPromiseFlatCString| public: diff --git a/mozilla/string/src/nsAFlatString.cpp b/mozilla/string/src/nsAFlatString.cpp index 143f2c419f5..114d01ad1b2 100644 --- a/mozilla/string/src/nsAFlatString.cpp +++ b/mozilla/string/src/nsAFlatString.cpp @@ -114,3 +114,33 @@ nsAFlatCString::GetWritableFragment( nsWritableFragment& aFragment, nsFrag return 0; } } + +PRUint32 +nsAFlatString::Length() const + { + const nsBufferHandle* handle = GetBufferHandle(); + return PRUint32(handle ? handle->DataLength() : 0); + } + +PRUint32 +nsAFlatCString::Length() const + { + const nsBufferHandle* handle = GetBufferHandle(); + return PRUint32(handle ? handle->DataLength() : 0); + } + +const PRUnichar* +nsAFlatString::get() const + { + const nsBufferHandle* handle = GetBufferHandle(); + NS_ASSERTION(handle, "handle is null!"); + return handle ? handle->DataStart() : 0; + } + +const char* +nsAFlatCString::get() const + { + const nsBufferHandle* handle = GetBufferHandle(); + NS_ASSERTION(handle, "handle is null!"); + return handle ? handle->DataStart() : 0; + } diff --git a/mozilla/xpcom/string/public/nsAFlatString.h b/mozilla/xpcom/string/public/nsAFlatString.h index bf58c69ae0f..c197bbf32ed 100644 --- a/mozilla/xpcom/string/public/nsAFlatString.h +++ b/mozilla/xpcom/string/public/nsAFlatString.h @@ -35,11 +35,11 @@ class NS_COM nsAFlatString { public: // don't really want this to be virtual, and won't after |obsolete_nsString| is really dead - virtual const PRUnichar* get() const { return GetBufferHandle()->DataStart(); } + virtual const PRUnichar* get() const; PRUnichar operator[]( PRUint32 i ) const { return get()[ i ]; } PRUnichar CharAt( PRUint32 ) const; - virtual PRUint32 Length() const { return PRUint32(GetBufferHandle()->DataLength()); } + virtual PRUint32 Length() const; // protected: // can't hide these (yet), since I call them from forwarding routines in |nsPromiseFlatString| public: @@ -52,11 +52,11 @@ class NS_COM nsAFlatCString { public: // don't really want this to be virtual, and won't after |obsolete_nsCString| is really dead - virtual const char* get() const { return GetBufferHandle()->DataStart(); } + virtual const char* get() const; char operator[]( PRUint32 i ) const { return get()[ i ]; } char CharAt( PRUint32 ) const; - virtual PRUint32 Length() const { return PRUint32(GetBufferHandle()->DataLength()); } + virtual PRUint32 Length() const; // protected: // can't hide these (yet), since I call them from forwarding routines in |nsPromiseFlatCString| public: diff --git a/mozilla/xpcom/string/src/nsAFlatString.cpp b/mozilla/xpcom/string/src/nsAFlatString.cpp index 143f2c419f5..114d01ad1b2 100644 --- a/mozilla/xpcom/string/src/nsAFlatString.cpp +++ b/mozilla/xpcom/string/src/nsAFlatString.cpp @@ -114,3 +114,33 @@ nsAFlatCString::GetWritableFragment( nsWritableFragment& aFragment, nsFrag return 0; } } + +PRUint32 +nsAFlatString::Length() const + { + const nsBufferHandle* handle = GetBufferHandle(); + return PRUint32(handle ? handle->DataLength() : 0); + } + +PRUint32 +nsAFlatCString::Length() const + { + const nsBufferHandle* handle = GetBufferHandle(); + return PRUint32(handle ? handle->DataLength() : 0); + } + +const PRUnichar* +nsAFlatString::get() const + { + const nsBufferHandle* handle = GetBufferHandle(); + NS_ASSERTION(handle, "handle is null!"); + return handle ? handle->DataStart() : 0; + } + +const char* +nsAFlatCString::get() const + { + const nsBufferHandle* handle = GetBufferHandle(); + NS_ASSERTION(handle, "handle is null!"); + return handle ? handle->DataStart() : 0; + }