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