[ROOT] Problems for empty strings in branches

From: Eckart Goehler (goehler@astro.uni-tuebingen.de)
Date: Wed Sep 12 2001 - 18:51:53 MEST


Hi, 

When filling a branch with an empty string, 
eg by: 
 --------------------------------------
 // test for root branch string adding
 void fill_branch()
 {
   TFile *f = new TFile("test.root"); 
   TTree *t = new TTree("test","test for adding empty strings"); 
   
   char s[] = "";
   t -> Branch("x",&s,"test/C");
   t -> Fill();
   t -> Scan();  // error if s empty
   f -> Close();
 }
 --------------------------------------

the Scan() method fails by reporting segementation violation:

 ------------------------------------
 TKey Reading 81 bytes at address 553
 ************************
 *    Row   *      test *
 ************************

  *** Break *** segmentation violation
 Root > Function fill_branch() busy flag cleared
 ------------------------------------

This happens when only when the this is called in a function or (much more
obscure) when running the program in a shared library. It does not happen
if the string s contains any text. 

Using ROOT version 3.01/06 on suse LinuX.

Any reasons/solutions?

sincerly 

eckart



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:59 MET