[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: DLL-diffs, c++ leak



Tomas,

> > ... we would appreciate getting your diffs
> > for incorporating into the netCDF 2.4 release.  We thought one of the code
> > checkers like ObjectCenter or Purify would catch such non-standard address
> > arithmetic, but neither provides a warning or error for this run-time
> > violation.  That makes your identification of these even more valuable,
> > since we don't know any tools that find them.
> > 
> > Lots of users have requested a netCDF DLL, and will be grateful for your
> > efforts.
> > 
> 
> I created a diff file with the changes that I made to compile netCDF as a
> DLL with the Borland compiler. As I told you, I have not debugged the code
> and there may be many more places that need to be changed.
> I had to disable all printing to stderr and did that in a very
> crude way which I am sure you do not want to copy (stderr is not
> supported in MS-Windos DLLs generated by Borland).
> I also had to recode a certain static initialization of function
> pointers in the xdr-part which do not work in the fragmented DLL
> memory management. Finally the _fmode variable in one of the xdr-files
> is only supported in DOS and not Windows. You use what you find useful in 
> this.
> I send the diff file as a separate e-mail with the subject bddl.diffs.

Thanks very much!  I was hoping we could get your changes in time to
incorporate into the netCDF 2.4 release, so now we will do that.  I'm having
my colleague, Steve Emmerson, work with your changes, so he may be sending
you email if he has any questions.

> I encountered a memory leak in the c++ interface when a netCDF file
> is opened unsuccessfully. I changed netcdf.cc to prevent this and
> send the context diff of the change to you as another message
> with the subject leak.diffs.

Yes, I had found and fixed this also, and made enough other fixes to the C++
interface in 2.4 that I'm anxious to get a beta release out for testing,
instead of making another patch.  I'll compare your fix with the way we
ended up fixing the leak (which is a bit more complicated).

--Russ