/* * initialize dictionaries, set seq, invoke init method of new graph */ Agraph_t *agopen1(Agraph_t * g) { Agraph_t *par; g->n_seq = agdtopen(g, &Ag_obj_seq_disc, Dttree); g->n_id = agdtopen(g, &Ag_obj_id_disc, Dttree); g->e_seq = agdtopen(g, &Ag_obj_seq_disc, Dttree); g->e_id = agdtopen(g, &Ag_edge_disc, Dttree); g->g_dict = agdtopen(g, &Ag_obj_id_disc, Dttree); par = agparent(g); if (par) { AGSEQ(g) = agnextseq(par, AGRAPH); dtinsert(par->g_dict, g); } /* else AGSEQ=0 */ if (g->desc.has_attrs) agraphattr_init(g, FALSE); agmethod_init(g, g); return g; }
/* * initialize dictionaries, set seq, invoke init method of new graph */ Agraph_t *agopen1(Agraph_t * g) { Agraph_t *par; g->n_seq = agdtopen(g, &Ag_subnode_seq_disc, Dttree); g->n_id = agdtopen(g, &Ag_subnode_id_disc, Dttree); g->e_seq = agdtopen(g, g == agroot(g)? &Ag_mainedge_seq_disc : &Ag_subedge_seq_disc, Dttree); g->e_id = agdtopen(g, g == agroot(g)? &Ag_mainedge_id_disc : &Ag_subedge_id_disc, Dttree); g->g_dict = agdtopen(g, &Ag_subgraph_id_disc, Dttree); par = agparent(g); if (par) { AGSEQ(g) = agnextseq(par, AGRAPH); dtinsert(par->g_dict, g); } /* else AGSEQ=0 */ if (!par || par->desc.has_attrs) agraphattr_init(g); agmethod_init(g, g); return g; }