No dictionary for class TStringRef

Dear Rooters

The attached macro “macroFillClassTree.C” fills a tree branch with entries of class XUnit.
1, Compiling with ACLiC “.x macroFillClassTree.C+” is ok, but opening the UnitTree with TBrowser
results in the following output:

  *******************************************
  *                                         *
  *        W E L C O M E  to  R O O T       *
  *                                         *
  *   Version   5.11/03     20 April 2006   *
  *                                         *
  *  You are welcome to visit our Web site  *
  *          http://root.cern.ch            *
  *                                         *
  *******************************************

FreeType Engine v2.1.9 used to render TrueType fonts.
Compiled on 22 April 2006 for macosx with thread support.

CINT/ROOT C/C++ Interpreter version 5.16.11, April 14, 2006
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
root [0] .x macroFillClassTree.C+
Info in <TUnixSystem>: creating shared library /Users/rabbitus/ROOT/rootcode/xpstest/./macroFillClassTree_C.so
root [1] TBrowser b              
root [2] Warning in <TClass>: no dictionary for class TStringRef is available
.q

Why do I get the warning “no dictionary for class TStringRef is available”?
Since I am filling many trees with TString information, I would appreciate
any hints how to avoid this problem.

2, Trying to execute with CINT “.x macroFillClassTree.C” results in a bus error:

  *******************************************
  *                                         *
  *        W E L C O M E  to  R O O T       *
  *                                         *
  *   Version   5.11/03     20 April 2006   *
  *                                         *
  *  You are welcome to visit our Web site  *
  *          http://root.cern.ch            *
  *                                         *
  *******************************************

FreeType Engine v2.1.9 used to render TrueType fonts.
Compiled on 22 April 2006 for macosx with thread support.

CINT/ROOT C/C++ Interpreter version 5.16.11, April 14, 2006
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
root [0] .x macroFillClassTree.C 
Error in <TClass>: can not find any ShowMembers function for XUnit!

 *** Break *** bus error
Root > Function macroFillClassTree() busy flag cleared
Function SetUnitName() busy flag cleared
.q

 *** Break *** bus error
Root > .q

Why is it not possible to run the macro with CINT?

Best regards
Christian
macroFillClassTree.C (2.16 KB)

Hi,

  1. this probably stems from the TBrowser trying to expand the data in your tree, see root.cern.ch/root/html/TVirtualBranchBrowsable. You can call TMethodBrowsable::Unregister(); TNonSplitBrowsable::Unregister(); TCollectionPropertyBrowsable::Unregister() once before accessing the tree in the browser to disable that. But maybe we should just create a dummy TStringRef class for Cint…

  2. object i/o of interpreted classes is not supported.

Cheers, Axel.

Dear Axel

Thank you for this explanation.
If you could create a dummy TStringRef class this would be great.

Best regards
Christian

Hi Christian,
the dictionary for TStringRef has now arrived in CVS.
Axel.

Dear Axel

Thank you for letting me know.

Best regards
Christian