41 typedef std::tr1::unordered_set<detail::IdType> set_type;
42 typedef std::vector<sat::detail::IdType> vector_type;
67 ctorAdd( item_r->satSolvable() );
76 {
if ( item_r )
ctorAdd( item_r->satSolvable() ); }
82 inline void addToSet(
Solvable item, set_type *& pdata, shared_ptr<void>& _private )
86 _private.reset( (pdata =
new set_type) );
88 pdata->insert( item.
id() );
100 if ( obsoleted.empty() )
104 set_type * pdata = ( _private ?
reinterpret_cast<set_type*
>( _private.get() ) : 0 );
105 for_( it, obsoleted.begin(), obsoleted.end() )
107 if ( it->isSystem() )
108 addToSet( *it, pdata, _private );
114 if ( obsoletes.empty() )
118 set_type * pdata = ( _private ?
reinterpret_cast<set_type*
>( _private.get() ) : 0 );
119 for_( it, obsoletes.begin(), obsoletes.end() )
122 IdString ident( it->detail().name() );
124 for_( iit, obsoleted.begin(), obsoleted.end() )
126 if ( iit->isSystem() && iit->ident() == ident )
127 addToSet( *iit, pdata, _private );
138 set_type * sdata =
reinterpret_cast<set_type*
>( _private.get() );
140 vector_type * pdata =
new vector_type( sdata->begin(), sdata->end() );
144 _private.reset( pdata );