[ROOT] Re:

From: Rene Brun (Rene.Brun@cern.ch)
Date: Tue Nov 20 2001 - 17:10:30 MET


Hi Brandon,

The functions like Strdup were implemented in the early days of Root
under Windows to circumvent deficiencies in the Windows implementation
of the standard Posix functions (well strdup is not posix), strchr, strcpy, etc.
We found that the Windows implementation crashes if you pass a null pointer
eg to strchr.
The ROOT code is now protected everywhere against calls to these functions
with null pointers.
Functions like Strdup could be removed from existing code and we do not use it
in the new code.

However, I do not understand how you can get a duplication with Strdup.
This function is not defined in the MS libs.

Rene Brun

Brandon Kohn wrote:
> 
>    Part 1.1       Type: Plain Text (text/plain)
>               Encoding: quoted-printable
Hello all,

I've been mucking around with Root and win32 stuff for a while now, and I've
found some curiosities that I would like answered.  For one, it seems that root
redefines some functions that exist in standard libraries (ansi, unix, and
win32).  For instance, the function StrDup in TString.  I get name conflicts
when I try to compile root objects (TH1 for instance) with some codes that
already include the function from the standard lib. A cursory inspection of the
code StrDup shows that it simply new's a char array, strcpy's the string and
returns the ptr to the new array.  Is this different then what the standard lib
does?

If not, can it be removed from Root?

Brandon Kohn
+377 97 97 41 50 ext. 306 (Work)
+377 97 77 86 71 (Home)
Monaco



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:09 MET