Hi,
A click on a TButton drawn in compiled code seems to be erasing the
definitions of variables in the interpreted code that is calling the
compiled code. The TButton executes a command inspired by dialogs.C:
Char_t command[256];
sprintf(command,
"{TH1 *h__ptr = (TH1*)0x%x; h__ptr->GetXaxis()->UnZoom();
h__ptr->GetYaxis()->UnZoom(); ((TPad*)0x%x)->Modified();}", histo,
displayPad);
TButton *resetButton = new TButton("Reset view",
command, 0.025, 0.025, 0.5, 0.15);
A macro calls a method of our compiled class, which brings up a
TCanvas with a TButton in it. If the TButton is clicked and its method
executed, ROOT bombs out of the macro complaining of "No symbol xxxx in
current scope", where xxxx is the name of a variable defined in the macro.
I haven't been able to reproduce this problem in simpler, purely
interpreted code.
If a macro calls compiled code, which in turn executes some
interpreted code (via gROOT->ProcessLine() as TButton seems to), will
all variable declarations in the original macro be lost?
I have a couple of workarounds (probably more couth for compiled code
anyway), but I'm curious what's going on.
This code was run under ROOT 3.01/02 14 May 2001 under Red Hat Linux
6.1 on an i386.
Thank you.
David
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:49 MET