Hi, I believe I've found a problem in CINT with constructors (hope I'm wrong). I'm trying to build a Class called VSeries. This class contains a method DrawHist() When I invoke this function, nearly all the methods of the class disapear from the class. That is, if I look at this class before doing anything, I have : root [16] .class VSeries =========================================================================== class VSeries //General Series class size=0xc0 (tagnum=16,voffset=-1,isabstract=0,parent=-1,gcomp=0,=~cd=0) List of base class-------------------------------------------------------- 0x0 public: FclData 0x0 public: FclBasicModule 0x70 public: TNamed //The basis for a named object (name, title) 0x0 public: TObject //Basic ROOT object List of member variable--------------------------------------------------- Defined in VSeries 0x0 protected: STRING mType , size=16 //Type of the serie : T (time), S (spectral) or TF (time-freq) 0x0 private: static Ssiz_t fgInitialCapac //Initial allocation Capacity 0x0 private: static Ssiz_t fgResizeInc //Resizing increment 0x0 private: static Ssiz_t fgFreeboard //Max empty space before reclaim 0x0 protected: char* fData //ref. counted data (TStringRef is in front) 0x14081d200 static const TString::EStripType kLeading 0x14081d220 static const TString::EStripType kTrailing 0x14081d240 static const TString::EStripType kBoth 0x14081d280 static const TString::ECaseCompare kExact 0x14081d2a0 static const TString::ECaseCompare kIgnoreCase 0x0 private: long G__virtualinfo 0x0 private: static TClass* fgIsA -- Press return for more -- (input [number] of lines, Cont,Step,More) 0x0 protected: TList* mPlots //List of VSPlots associated with this serie 0x0 protected: TList* mHistograms //List of Histograms associated with this serie 0x0 private: static TClass* fgIsA List of member function--------------------------------------------------- Defined in VSeries filename line:size busy function type and name (compiled) 0:0 0 public: VSeries VSeries(void); (compiled) 0:0 0 public: VSeries VSeries(STRING nameVal,STRING typeVal,REAL_8 rateVal,Double_t offsetVal=0,Double_t deltaVal=0,Double_t* vector=0); (compiled) 0:0 0 public: VSeries VSeries(FclHeader* frame,Text_t* typeAndName); (compiled) 0:0 0 public: VSeries VSeries(VSeries& vs); (compiled) 0:0 0 public: virtual VSPlot* Draw(Float_t offset=-1e20,Float_t dur=1e20,Option_t* option); (compiled) 0:0 0 public: virtual void DrawHist(Float_t offset=-1e20,Float_t dur=1e20,Text_t* hwork,Option_t* option); (compiled) 0:0 0 public: virtual TList* GetListOfPlots(void) const; (compiled) 0:0 0 public: virtual TList* GetListOfHistograms(void) const; (compiled) 0:0 0 public: INT_2U GetTypeOfVect(void); (compiled) 0:0 0 public: STRING GetType(void); (compiled) 0:0 0 public: virtual void Copy(TObject& vs); (compiled) 0:0 0 public: const char* DeclFileName(void); (compiled) 0:0 0 public: int DeclFileLine(void); (compiled) 0:0 0 public: const char* ImplFileName(void); (compiled) 0:0 0 public: int ImplFileLine(void); (compiled) 0:0 0 public: Version_t Class_Version(void); (compiled) 0:0 0 public: TClass* Class(void); -- Press return for more -- (input [number] of lines, Cont,Step,More) (compiled) 0:0 0 public: void Dictionary(void); (compiled) 0:0 0 public: virtual TClass* IsA(void) const; (compiled) 0:0 0 public: virtual void ShowMembers(TMemberInspector& insp,char* parent); (compiled) 0:0 0 public: virtual void Streamer(TBuffer& b); (compiled) 0:0 0 public: void ~VSeries(void); and once I've used the DrawHist method, I see : root [18] .class VSeries =========================================================================== class VSeries //General Series class size=0xc0 (tagnum=16,voffset=-1,isabstract=0,parent=-1,gcomp=0,=~cd=0) List of base class-------------------------------------------------------- 0x0 public: FclData 0x0 public: FclBasicModule 0x70 public: TNamed //The basis for a named object (name, title) 0x0 public: TObject //Basic ROOT object List of member variable--------------------------------------------------- Defined in VSeries 0x0 protected: STRING mType , size=16 //Type of the serie : T (time), S (spectral) or TF (time-freq) 0x0 private: static Ssiz_t fgInitialCapac //Initial allocation Capacity 0x0 private: static Ssiz_t fgResizeInc //Resizing increment 0x0 private: static Ssiz_t fgFreeboard //Max empty space before reclaim 0x0 protected: char* fData //ref. counted data (TStringRef is in front) 0x14081d200 static const TString::EStripType kLeading 0x14081d220 static const TString::EStripType kTrailing 0x14081d240 static const TString::EStripType kBoth 0x14081d280 static const TString::ECaseCompare kExact 0x14081d2a0 static const TString::ECaseCompare kIgnoreCase 0x0 private: long G__virtualinfo 0x0 private: static TClass* fgIsA -- Press return for more -- (input [number] of lines, Cont,Step,More) 0x0 protected: TList* mPlots //List of VSPlots associated with this serie 0x0 protected: TList* mHistograms //List of Histograms associated with this serie 0x0 private: static TClass* fgIsA List of member function--------------------------------------------------- Defined in VSeries filename line:size busy function type and name (compiled) 0:0 0 public: virtual void Copy(TObject& vs); (compiled) 0:0 0 public: const char* DeclFileName(void); (compiled) 0:0 0 public: int DeclFileLine(void); (compiled) 0:0 0 public: const char* ImplFileName(void); (compiled) 0:0 0 public: int ImplFileLine(void); (compiled) 0:0 0 public: Version_t Class_Version(void); (compiled) 0:0 0 public: TClass* Class(void); (compiled) 0:0 0 public: void Dictionary(void); (compiled) 0:0 0 public: virtual TClass* IsA(void) const; (compiled) 0:0 0 public: virtual void ShowMembers(TMemberInspector& insp,char* parent); (compiled) 0:0 0 public: virtual void Streamer(TBuffer& b); (compiled) 0:0 0 public: void ~VSeries(void); Is this a known problem, or is it the first time somebody sees it ? I don't know why this happens only when using the DrawHist method. There is also a Draw method that doesn't show this behaviour. I'm sorry but I cannot show you a simple example. I'll try to track down the problem but this is not a trivial task. If there is a hint for a solution, I would prefer... Anyway, why should it be possible for CINT to remove some methods from it's dictionary ? This seems to be illogical. Cheers Damir -- ===================================================================== | Damir Buskulic | Universite de Savoie/LAPP | | | Chemin de Bellevue, B.P. 110 | | Tel : +33 (0)450091600 | F-74941 Annecy-le-Vieux Cedex | | e-mail: buskulic@lapp.in2p3.fr | FRANCE | ===================================================================== mailto:buskulic@lapp.in2p3.fr
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:38 MET