[vtk-developers] Solved - cmVTKWrapTcl2Command.c
Bill Hoffman
bill.hoffman at kitware.com
Mon Jan 20 13:55:53 EST 2003
Please be careful these files, and remember that they are "C" and not "C++". You just checked in several c++ // style comments that do not compile on several of the c compilers used to build VTK.
-Bill
At 12:34 AM 1/18/2003 +0000, John Biddiscombe wrote:
>There seem to be three reasons for the dodgy behaviour
>
>1) some instances of
>char *var = malloc(...)
>followed by
>info->CAPI->Free(var);
>
>and also
> concrete = (char **)malloc(sizeof(char *)*newArgc);
> concrete[numConcrete] = strdup(srcName);
> //....
> info->CAPI->FreeArguments(numConcrete,concrete);
>
>where structures are being allocated in the MS compiled CMake, and freed in
>the Borland compiled dll. To some extent I'm getting crashes even when using
>MS and MS, but I may have linked something wrong.
>
>
>2) A very nasty little one that was hard to find...(this was in my code, but
>it may appear elsewhere, so it's worth mentioning)
>
> // fetch a char pointer from a cmSourceFile object
> const char *cdir = info->CAPI->SourceFileGetFullPath (file);
> // set up the tcl wrapped object using using
> info->CAPI->SourceFileSetName2(file, newName, cdir, "cxx",0);
> // later do something with cdir, but hang on, cdir actually points to the
> // std::string var.c_str() pointer and was invalidated when
> // the string was overwritten in the SourceFileSetName2 call
>
>3) I'm told, but can't find it in writing, that MS vis Studio uses a
>structure packing size of 4 by default, but Borland by default uses 8, so
>maybe the whole of cmCPluginAPI should to be wrapped in
>#pragma pack(push, 4)
>#pragma pack(pop)
>or something appropriate like byte alignment. I don't know if these pragmas
>are valid on other compilers...
>
>(Not sure if this was causing trouble, but I'll mention it anyway)
>
>Open to correction on any of the above points. I've fixed the WrapTcl2
>command, but I suspect similar problems exist in the other wrappers and may
>crop up when people start mixing compilers. Relative paths are now working
>in the tcl wrap command. Phew!
>
>yours
>
>JB
>
>NB. One bug left
>Set_Source_File_Properties(
> obsolete/AbstractCoverageFilter
> ABSTRACT
>)
>doesn't work properly. I'll look into this, but it seems it doesn't
>correctly set the flag. If I leave out the obsolete/ path - it fails when
>CMake executes and can't find the file (which is fair enough)...
>
>
>
>
>
>_______________________________________________
>vtk-developers mailing list
>vtk-developers at public.kitware.com
>http://public.kitware.com/mailman/listinfo/vtk-developers
More information about the vtk-developers
mailing list