The same code is working fine if i use
 
              boost::target(*iedge_s,g) or boost::source(*iedge_s,g);

i mean that source and target of the edge that it is returning are the right ones.
here i think iam able to use in_edge_descriptor as edge_descriptor

-
Phani.

On Tue, Mar 24, 2009 at 11:35 PM, Phani Deepak <phanidee@gmail.com> wrote:
hi,
       i have stored some bundled properties for an edge.

class EdgeProperties {
    public:
    int targetI;// Terminal No. interms of target node
    int sourceI;// Terminal No. interms of source node
    EdgeProperties(int s,int t):sourceI(s-1),targetI(t-1) { }
};


my Graph is :
typedef boost::adjacency_list<boost::listS,boost::listS,boost::bidirectionalS, EdgeProperties *> Graph;
Graph g;

Now iam iterating through in_edges of some vertex v;
graphtraits<Graph>::in_edge_iterator iedge_s,iedge_end;
for(boost::tie(iedge_s,iedge_end) = boost::in_edges(v,g); iedge_s!=iedge_end; ++iedge_s){
       EdgeProperties *ep = g[*iedge_s];     //  <====
Line 10
       cout << ep->sourceI << endl;         //        <====  
This is giving segmentation fault;
}

I checked the  ep pointer. it is coming out as null in line 10;

is there any problem while using in_edge_descriptor as edge_descriptor( for g[edge_descriptor] ) in  Line 10 ??

please help.

-
Phani.