Hi Valery, I have introduced your mods to TCanvas, hoping that this solves the problems experienced with Axel that I cannot reproduce. Rene Brun Valeri Fine wrote: > > > in my usual environment (Win2k, MSVC6, linking root against my own main()) I > > (and other colleagues) occasionally get an access violation in libGpad. > > Thanks to the debug distribution I could track that problem down to the > > following bug: > > Hello, Alex I could not reproduce your problem yet. > However I've looked up TCanvas source and found TCanvas::Build() method first > opens the window , THEN it initializes the data-members. > > This may cause the problem you observed if the system is fast enough and the user gets > his/her WIN32 Windows quickly, before the Build() code had a chance to set fSelected to ZERO. > If this is the case one should get the trouble just Canvas is open and the mouse pointer > is occasionally within the new born Canvas borders. Is it what you did see ? > > This can be fixed by changing the order of the statements in TCanvas ::Build(), namely > first initialize everything then open the window. > > This is due the multithread protection introduced recently was not propagated to > the Windows version yet. This correction did solve the some problem for UNIX version > but introduced some troubles for the WIN32. > > Can you apply the diff attached to see whether it helps > > > By the way: Does anybody know where members are initialized to "0xbaadf00d"? > > I can't find it anywhere in the root source... > > It could be nowhere just some garbage value the system left in the memory from > the previous memory allocation > > > Best regards, Valeri > > PS. I hope in week we will see the person who will take care about Windows version of ROOT. > > -------------------------------------------------------------------------------- > > Name: canvas.diff > canvas.diff Type: unspecified type (application/octet-stream) > Encoding: quoted-printable
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:48 MET