@@ -306,28 +306,28 @@ SingleIndexedNetlistModel::parent_of (const subcircuit_pair &subcircuits) const
306306 return std::make_pair (subcircuits.first ? subcircuits.first ->circuit () : 0 , (const db::Circuit *) 0 );
307307}
308308
309- std::pair<IndexedNetlistModel::circuit_pair, std::pair<IndexedNetlistModel::Status, std::string> > SingleIndexedNetlistModel::top_circuit_from_index (size_t index) const
309+ std::pair<IndexedNetlistModel::circuit_pair, std::pair<IndexedNetlistModel::Status, std::string> > SingleIndexedNetlistModel::top_circuit_from_index (size_t index) const
310310{
311311 db::Netlist::const_top_down_circuit_iterator none;
312312 return std::make_pair (attr_by_object_and_index (std::make_pair ((const db::Circuit *) 0 , (const db::Circuit *) 0 ), index, mp_netlist->begin_top_down (), mp_netlist->begin_top_down () + mp_netlist->top_circuit_count (), none, none, m_child_circuit_by_circuit_and_index, sort_by_name<db::Circuit> ()), std::make_pair (db::NetlistCrossReference::None, std::string ()));
313313}
314314
315- std::pair<IndexedNetlistModel::circuit_pair, std::pair<IndexedNetlistModel::Status, std::string> > SingleIndexedNetlistModel::child_circuit_from_index (const circuit_pair &circuits, size_t index) const
315+ std::pair<IndexedNetlistModel::circuit_pair, std::pair<IndexedNetlistModel::Status, std::string> > SingleIndexedNetlistModel::child_circuit_from_index (const circuit_pair &circuits, size_t index) const
316316{
317317 db::Circuit::const_child_circuit_iterator none;
318318 return std::make_pair (attr_by_object_and_index (circuits, index, circuits.first ->begin_children (), circuits.first ->end_children (), none, none, m_child_circuit_by_circuit_and_index, sort_by_name<db::Circuit> ()), std::make_pair (db::NetlistCrossReference::None, std::string ()));
319319}
320320
321- std::pair<IndexedNetlistModel::circuit_pair, std::pair<IndexedNetlistModel::Status, std::string> > SingleIndexedNetlistModel::circuit_from_index (size_t index) const
321+ std::pair<IndexedNetlistModel::circuit_pair, std::pair<IndexedNetlistModel::Status, std::string> > SingleIndexedNetlistModel::circuit_from_index (size_t index) const
322322{
323323 db::Netlist::const_circuit_iterator none;
324324 return std::make_pair (attr_by_object_and_index (std::make_pair (mp_netlist, (const db::Netlist *) 0 ), index, mp_netlist->begin_circuits (), mp_netlist->end_circuits (), none, none, m_circuit_by_index, sort_by_name<db::Circuit> ()), std::make_pair (db::NetlistCrossReference::None, std::string ()));
325325}
326326
327- std::pair<IndexedNetlistModel::net_pair, std::pair<IndexedNetlistModel::Status, std::string> > SingleIndexedNetlistModel::net_from_index (const circuit_pair &circuits, size_t index) const
327+ std::pair<IndexedNetlistModel::net_pair, std::pair<IndexedNetlistModel::Status, std::string> > SingleIndexedNetlistModel::net_from_index (const circuit_pair &circuits, size_t index) const
328328{
329329 db::Circuit::const_net_iterator none;
330- return std::make_pair (attr_by_object_and_index (circuits, index, circuits.first ->begin_nets (), circuits.first ->end_nets (), none, none, m_net_by_circuit_and_index, sort_by_expanded_name<db::Net> ()), std::make_pair (db::NetlistCrossReference::None, std::string ()));
330+ return std::make_pair (attr_by_object_and_index (std::make_pair ( circuits. first , ( const db::Circuit *) 0 ) , index, circuits.first ->begin_nets (), circuits.first ->end_nets (), none, none, m_net_by_circuit_and_index, sort_by_expanded_name<db::Net> ()), std::make_pair (db::NetlistCrossReference::None, std::string ()));
331331}
332332
333333const db::Net *
@@ -346,12 +346,15 @@ IndexedNetlistModel::net_subcircuit_pin_pair
346346SingleIndexedNetlistModel::net_subcircuit_pinref_from_index (const net_pair &nets, size_t index) const
347347{
348348 db::Net::const_subcircuit_pin_iterator none;
349- return attr_by_object_and_index (nets, index, nets.first ->begin_subcircuit_pins (), nets.first ->end_subcircuit_pins (), none, none, m_subcircuit_pinref_by_net_and_index, sort_by_pin_name<db::NetSubcircuitPinRef> ());
349+ return attr_by_object_and_index (std::make_pair ( nets. first , ( const db::Net *) 0 ) , index, nets.first ->begin_subcircuit_pins (), nets.first ->end_subcircuit_pins (), none, none, m_subcircuit_pinref_by_net_and_index, sort_by_pin_name<db::NetSubcircuitPinRef> ());
350350}
351351
352352IndexedNetlistModel::net_subcircuit_pin_pair
353- SingleIndexedNetlistModel::subcircuit_pinref_from_index (const subcircuit_pair &subcircuits , size_t index) const
353+ SingleIndexedNetlistModel::subcircuit_pinref_from_index (const subcircuit_pair &subcircuits_in , size_t index) const
354354{
355+ subcircuit_pair subcircuits = subcircuits_in;
356+ subcircuits.second = 0 ;
357+
355358 if (! subcircuits.first ) {
356359 return IndexedNetlistModel::net_subcircuit_pin_pair ((const db::NetSubcircuitPinRef *) 0 , (const db::NetSubcircuitPinRef *) 0 );
357360 }
@@ -381,62 +384,68 @@ IndexedNetlistModel::net_terminal_pair
381384SingleIndexedNetlistModel::net_terminalref_from_index (const net_pair &nets, size_t index) const
382385{
383386 db::Net::const_terminal_iterator none;
384- return attr_by_object_and_index (nets, index, nets.first ->begin_terminals (), nets.first ->end_terminals (), none, none, m_terminalref_by_net_and_index, sort_by_terminal_id<db::NetTerminalRef> ());
387+ return attr_by_object_and_index (std::make_pair ( nets. first , ( const db::Net *) 0 ) , index, nets.first ->begin_terminals (), nets.first ->end_terminals (), none, none, m_terminalref_by_net_and_index, sort_by_terminal_id<db::NetTerminalRef> ());
385388}
386389
387390IndexedNetlistModel::net_pin_pair
388391SingleIndexedNetlistModel::net_pinref_from_index (const net_pair &nets, size_t index) const
389392{
390393 db::Net::const_pin_iterator none;
391- return attr_by_object_and_index (nets, index, nets.first ->begin_pins (), nets.first ->end_pins (), none, none, m_pinref_by_net_and_index, sort_by_pin_name<db::NetPinRef> ());
394+ return attr_by_object_and_index (std::make_pair ( nets. first , ( const db::Net *) 0 ) , index, nets.first ->begin_pins (), nets.first ->end_pins (), none, none, m_pinref_by_net_and_index, sort_by_pin_name<db::NetPinRef> ());
392395}
393396
394- std::pair<IndexedNetlistModel::device_pair, std::pair<IndexedNetlistModel::Status, std::string> > SingleIndexedNetlistModel::device_from_index (const circuit_pair &circuits, size_t index) const
397+ std::pair<IndexedNetlistModel::device_pair, std::pair<IndexedNetlistModel::Status, std::string> > SingleIndexedNetlistModel::device_from_index (const circuit_pair &circuits, size_t index) const
395398{
396399 db::Circuit::const_device_iterator none;
397- return std::make_pair (attr_by_object_and_index (circuits, index, circuits.first ->begin_devices (), circuits.first ->end_devices (), none, none, m_device_by_circuit_and_index, sort_by_expanded_name<db::Device> ()), std::make_pair (db::NetlistCrossReference::None, std::string ()));
400+ return std::make_pair (attr_by_object_and_index (std::make_pair ( circuits. first , ( const db::Circuit *) 0 ) , index, circuits.first ->begin_devices (), circuits.first ->end_devices (), none, none, m_device_by_circuit_and_index, sort_by_expanded_name<db::Device> ()), std::make_pair (db::NetlistCrossReference::None, std::string ()));
398401}
399402
400- std::pair<IndexedNetlistModel::pin_pair, std::pair<IndexedNetlistModel::Status, std::string> > SingleIndexedNetlistModel::pin_from_index (const circuit_pair &circuits, size_t index) const
403+ std::pair<IndexedNetlistModel::pin_pair, std::pair<IndexedNetlistModel::Status, std::string> > SingleIndexedNetlistModel::pin_from_index (const circuit_pair &circuits, size_t index) const
401404{
402405 db::Circuit::const_pin_iterator none;
403- return std::make_pair (attr_by_object_and_index (circuits, index, circuits.first ->begin_pins (), circuits.first ->end_pins (), none, none, m_pin_by_circuit_and_index, Unsorted ()), std::make_pair (db::NetlistCrossReference::None, std::string ()));
406+ return std::make_pair (attr_by_object_and_index (std::make_pair ( circuits. first , ( const db::Circuit *) 0 ) , index, circuits.first ->begin_pins (), circuits.first ->end_pins (), none, none, m_pin_by_circuit_and_index, Unsorted ()), std::make_pair (db::NetlistCrossReference::None, std::string ()));
404407}
405408
406- std::pair<IndexedNetlistModel::subcircuit_pair, std::pair<IndexedNetlistModel::Status, std::string> > SingleIndexedNetlistModel::subcircuit_from_index (const circuit_pair &circuits, size_t index) const
409+ std::pair<IndexedNetlistModel::subcircuit_pair, std::pair<IndexedNetlistModel::Status, std::string> > SingleIndexedNetlistModel::subcircuit_from_index (const circuit_pair &circuits, size_t index) const
407410{
408411 db::Circuit::const_subcircuit_iterator none;
409- return std::make_pair (attr_by_object_and_index (circuits, index, circuits.first ->begin_subcircuits (), circuits.first ->end_subcircuits (), none, none, m_subcircuit_by_circuit_and_index, sort_by_expanded_name<db::SubCircuit> ()), std::make_pair (db::NetlistCrossReference::None, std::string ()));
412+ return std::make_pair (attr_by_object_and_index (std::make_pair ( circuits. first , ( const db::Circuit *) 0 ) , index, circuits.first ->begin_subcircuits (), circuits.first ->end_subcircuits (), none, none, m_subcircuit_by_circuit_and_index, sort_by_expanded_name<db::SubCircuit> ()), std::make_pair (db::NetlistCrossReference::None, std::string ()));
410413}
411414
412415size_t
413416SingleIndexedNetlistModel::circuit_index (const circuit_pair &circuits) const
414417{
415418 db::Netlist::const_circuit_iterator none;
416- return index_from_attr (circuits, mp_netlist->begin_circuits (), mp_netlist->end_circuits (), none, none, m_circuit_index_by_object, sort_by_name<db::Circuit> ());
419+ return index_from_attr (std::make_pair ( circuits. first , ( const db::Circuit *) 0 ) , mp_netlist->begin_circuits (), mp_netlist->end_circuits (), none, none, m_circuit_index_by_object, sort_by_name<db::Circuit> ());
417420}
418421
419422size_t
420- SingleIndexedNetlistModel::net_index (const net_pair &nets ) const
423+ SingleIndexedNetlistModel::net_index (const net_pair &nets_in ) const
421424{
422425 db::Circuit::const_net_iterator none;
423426
427+ net_pair nets = nets_in;
428+ nets.second = 0 ;
429+
424430 circuit_pair circuits = parent_of (nets);
425431 return index_from_attr (nets,
426432 circuits.first ? circuits.first ->begin_nets () : none, circuits.first ? circuits.first ->end_nets () : none,
427- circuits. second ? circuits. second -> begin_nets () : none, circuits. second ? circuits. second -> end_nets () : none,
433+ none, none,
428434 m_net_index_by_object, sort_by_expanded_name<db::Net> ());
429435}
430436
431437size_t
432- SingleIndexedNetlistModel::device_index (const device_pair &devices ) const
438+ SingleIndexedNetlistModel::device_index (const device_pair &devices_in ) const
433439{
434440 db::Circuit::const_device_iterator none;
435441
442+ device_pair devices = devices_in;
443+ devices.second = 0 ;
444+
436445 circuit_pair circuits = parent_of (devices);
437446 return index_from_attr (devices,
438447 circuits.first ? circuits.first ->begin_devices () : none, circuits.first ? circuits.first ->end_devices () : none,
439- circuits. second ? circuits. second -> begin_devices () : none, circuits. second ? circuits. second -> end_devices () : none,
448+ none, none,
440449 m_device_index_by_object, sort_by_expanded_name<db::Device> ());
441450}
442451
@@ -445,21 +454,24 @@ SingleIndexedNetlistModel::pin_index (const pin_pair &pins, const circuit_pair &
445454{
446455 db::Circuit::const_pin_iterator none;
447456
448- return index_from_attr (pins,
457+ return index_from_attr (std::make_pair ( pins. first , ( const db::Pin *) 0 ) ,
449458 circuits.first ? circuits.first ->begin_pins () : none, circuits.first ? circuits.first ->end_pins () : none,
450- circuits. second ? circuits. second -> begin_pins () : none, circuits. second ? circuits. second -> end_pins () : none,
459+ none, none,
451460 m_pin_index_by_object, sort_by_expanded_name<db::Pin> ());
452461}
453462
454463size_t
455- SingleIndexedNetlistModel::subcircuit_index (const subcircuit_pair &subcircuits ) const
464+ SingleIndexedNetlistModel::subcircuit_index (const subcircuit_pair &subcircuits_in ) const
456465{
457466 db::Circuit::const_subcircuit_iterator none;
458467
468+ subcircuit_pair subcircuits = subcircuits_in;
469+ subcircuits.second = 0 ;
470+
459471 circuit_pair circuits = parent_of (subcircuits);
460472 return index_from_attr (subcircuits,
461473 circuits.first ? circuits.first ->begin_subcircuits () : none, circuits.first ? circuits.first ->end_subcircuits () : none,
462- circuits. second ? circuits. second -> begin_subcircuits () : none, circuits. second ? circuits. second -> end_subcircuits () : none,
474+ none, none,
463475 m_subcircuit_index_by_object, sort_by_expanded_name<db::SubCircuit> ());
464476}
465477
0 commit comments