[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [aspell-devel] The String class for 0.60 does not null terminate str
From: |
Kevin Atkinson |
Subject: |
Re: [aspell-devel] The String class for 0.60 does not null terminate strings. |
Date: |
Mon, 27 Sep 2004 09:21:59 -0600 (MDT) |
On Mon, 27 Sep 2004, Gary Setter wrote:
> > On Sun, 26 Sep 2004, Gary Setter wrote:
> >
> > > I'm doing a Win32 port. I just got it to compile and I'm seeing
> > > how things work. Right away I see that the String class does not
> > > null terminate.
> >
> > Can you be more specific. The String class does not always null terminate
> > but it does when needed.
>
> The version that I downloaded has a write date of 24-Jun-04
> 11:07pm
>
> The c'tor from a const char * is
>
> String(const char * s) {assign_only(s);}
>
> assign only is
> void assign_only(const char * b)
> {
> if (b && *b) assign_only_nonnull(b, strlen(b));
> else zero();
> }
...
> You will call assign_only_nonnull with b= "a\0" and size = 1. The
> memmove will only copy one character ( the 'a' ) to begin_[0],
> begin_[1] is not initialized.
> That is just one example.
> Do you want to see my rendition?
That is correct. The string is not guaranteed to be null terminated. This
is for performance reasons as is not always needed. This is most apparent
when appending one character at a time. The string is only null
terminated when c_Star() is called or ensure_null_end() is called.
Otherwise it leaves room for the null end but doesn't null terminate the
string. This is a design design on my part which I will not change with
out a very good reason.
Fell free to submit a patch which adds some documentation on the behavior
of the String class.
--
http://kevin.atkinson.dhs.org
- [aspell-devel] The String class for 0.60 does not null terminate strings., Gary Setter, 2004/09/26
- Re: [aspell-devel] The String class for 0.60 does not null terminate strings., Kevin Atkinson, 2004/09/26
- Re: [aspell-devel] The String class for 0.60 does not null terminate strings., Gary Setter, 2004/09/27
- Re: [aspell-devel] The String class for 0.60 does not null terminate strings.,
Kevin Atkinson <=
- Re: [aspell-devel] The String class for 0.60 does not null terminate strings., Gary Setter, 2004/09/27
- Re: [aspell-devel] The String class for 0.60 does not null terminate strings., Kevin Atkinson, 2004/09/27
- Re: [aspell-devel] The String class for 0.60 does not null terminatestrings., Gary Setter, 2004/09/27
- Re: [aspell-devel] The String class for 0.60 does not null terminatestrings., Kevin Atkinson, 2004/09/27
- Re: [aspell-devel] The String class for 0.60 does not nullterminatestrings., Lumina, 2004/09/27
- Re: [aspell-devel] The String class for 0.60 does not nullterminatestrings., Kevin Atkinson, 2004/09/27