Compare Revisions

Mozilla internal string guide

Revision 304475:

Revision 304475 by DBaron on

Revision 327647:

Revision 327647 by Heycam on

Title:
Mozilla internal string guide
Mozilla internal string guide
Slug:
Mozilla_internal_string_guide
Mozilla_internal_string_guide
Tags:
"XPCOM","NeedsMarkupWork"
"XPCOM","NeedsMarkupWork"
Content:

Revision 304475
Revision 327647
n56            nsCAutoStringn56            nsAutoCString
n219        <code><strong>nsAutoString / nsCAutoString</strong></coden219        <code><strong>nsAutoString / nsAutoCString</strong></code
>>- derived from <code>nsString</code>, a string which owns a 64 c>>- derived from <code>nsString</code>, a string which owns a 64 c
>ode unit buffer in the same storage space as the string itself. I>ode unit buffer in the same storage space as the string itself. I
>f a string less than 64 code units is assigned to an <code>nsAuto>f a string less than 64 code units is assigned to an <code>nsAuto
>String</code>, then no extra storage will be allocated. For large>String</code>, then no extra storage will be allocated. For large
>r strings, a new buffer is allocated on the heap.>r strings, a new buffer is allocated on the heap.
n228        <code><strong>nsPrintfCString</strong></code>- derived frn228        <code><strong>nsPrintfCString</strong></code>- derived fr
>om <code>nsCString</code>, this string behaves like an <code>nsCA>om <code>nsCString</code>, this string behaves like an <code>nsAu
>utoString</code>. The constructor takes parameters which allows i>toCString</code>. The constructor takes parameters which allows i
>t to construct a 8-bit string from a <code>printf</code>-style fo>t to construct a 8-bit string from a <code>printf</code>-style fo
>rmat string and parameter list.>rmat string and parameter list.
n511      <code><strong>NS_ConvertUTF16toUTF8(<em>const nsAString&ampn511      <code><strong>NS_ConvertUTF16toUTF8(<em>const nsAString&amp
>;</em>)</strong></code> - a <code>nsCAutoString</code> which conv>;</em>)</strong></code> - a <code>nsAutoCString</code> which conv
>erts a 16-bit UTF-16 string (<code>nsAString</code>) to a UTF-8 e>erts a 16-bit UTF-16 string (<code>nsAString</code>) to a UTF-8 e
>ncoded string. As above, you can use <code>.get()</code> to acces>ncoded string. As above, you can use <code>.get()</code> to acces
>s a <code>const char*</code> buffer.>s a <code>const char*</code> buffer.
n590        <code><strong>NS_LossyConvertUTF16toASCII(<em>nsAString</n590        <code><strong>NS_LossyConvertUTF16toASCII(<em>nsAString</
>em>)</strong></code> - a <code>nsCAutoString</code> which holds a>em>)</strong></code> - a <code>nsAutoCString</code> which holds a
> temporary buffer containing the deflated value of the string.> temporary buffer containing the deflated value of the string.
n800      Local variables within a function are usually stored on then800      Local variables within a function are usually stored on the
> stack. The <code>nsAutoString/nsCAutoString</code> classes are d> stack. The <code>nsAutoString/nsAutoCString</code> classes are d
>erivatives of the <code>nsString/nsCString classes</code>. They o>erivatives of the <code>nsString/nsCString classes</code>. They o
>wn a 64-character buffer allocated in the same storage space as t>wn a 64-character buffer allocated in the same storage space as t
>he string itself. If the <code>nsAutoString</code> is allocated o>he string itself. If the <code>nsAutoString</code> is allocated o
>n the stack, then it has at its disposal a 64-character stack buf>n the stack, then it has at its disposal a 64-character stack buf
>fer. This allows the implementation to avoid allocating extra mem>fer. This allows the implementation to avoid allocating extra mem
>ory when dealing with small strings.>ory when dealing with small strings.
n845      Another common incorrect pattern is to use <code>nsAutoStrin845      Another common incorrect pattern is to use <code>nsAutoStri
>ng/nsCAutoString</code> for member variables. As described in <a >ng/nsAutoCString</code> for member variables. As described in <a 
>href="#Local_variables">Local Variables</a>, these classes have a>href="#Local_variables">Local Variables</a>, these classes have a
> built in buffer that make them very large. This means that if yo> built in buffer that make them very large. This means that if yo
>u include them in a class, they bloat the class by 64 bytes (<cod>u include them in a class, they bloat the class by 64 bytes (<cod
>e>nsCAutoString</code>) or 128 bytes (<code>nsAutoString</code>).>e>nsAutoCString</code>) or 128 bytes (<code>nsAutoString</code>).
t1141            nsCAutoString</code>t1141            nsAutoCString</code>

Back to History