Dear ROOTers,
I found a problem with functions returning TGraph objects. Returning a
TGraph in a compiled piece of code triggers a segmentation violation. An
simple example is attached below.
My working version of ROOT is 3.04/00. I compiled the code with
egcs-2.91.66 on a Redhat 6.2 machine. A minimal example of this problem is
given in the code below.
Getting an stack trace from the debugger after the crash shows that the
problem is triggered by the TGraph-destructor.
After looking at the TGraph source code, I think the problem lies in the
fact that there is no TGraph copy constructor, to copy the arrays that
contain the coordinates and the other 'pointer' data.
So my question is: could a (safe) TGraph copy-constructor be implemented,
or is there some (fundamental) reason why there is none implemented yet ?
Cheers,
Sven Schagen
---- Example code ----
#include "TGraph.h"
#include <iostream>
TGraph makeGraph(void){
TGraph rgraph(10);
rgraph.SetName("test");
return rgraph;
}
void main(int argc,char** argv){
cout << "Creating main's TGraph" << endl;
TGraph tgraph;
cout << "Getting TGraph from makeGraph." << endl;
tgraph = makeGraph();
cout << "Exiting test-code." << endl;
}
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:10 MET