fstring distinguished type

John Malmberg wb8tyw at qsl.net
Tue Jan 15 19:11:03 GMT 2002


Martin Pool wrote:

> On 15 Jan 2002, John Malmberg <wb8tyw at qsl.network> wrote:
> 
>>How about passing arrays by a descriptor?
>>
>>typedef struct {
>>    int tag;              /* Code to type of data. helps debug */
>>    int class;            /* Memory allocation */
>>    size_t allocation;    /* Maximum size of string */
>>    size_t currentsize;   /* Current used allocation */
>>    char * pointer;       /* Pointer to string data */
>>} string_dsc;
>>
> 
> This is very similar to GString
> 
>   http://developer.gnome.org/doc/API/2.0/glib/glib-strings.html
> 
> I suspect GNOME does more complicated string manipulations than Samba,
> so they need growable strings more than we do.
> 
> I suppose it's been reinvented or reproduced many times.


Having tag / class / allocation members on every structure makes the 
debugging easier.  If your debugger accepts extensions, you can point it 
at an arbitrary pointer in memory and it can produce a formatted dump.

But adding in these members has to be done with care.


I just threw the idea out since you were in an experimental mode.

I know of an entire Operating System and platform that uses this method 
all through it as a matter of practice. :-)

> This also has the problem that every existing part of the code that
> assumes a pstring is equivalent to a char* will have to be converted.
> Also, the conversion will have to be done in one go, whereas with the
> union the two types were binary-compatible and so conversion could be
> done one source file at a time.


Yes, I was not looking at the specific case, just as put it out as food 
for thought.

-John

wb8tyw at qsl.network
Personal Opinion Only





More information about the samba-technical mailing list