added possibility to modify resolvable's dependencies
authorJiri Srain <jsrain@suse.cz>
Tue, 8 Nov 2005 12:00:04 +0000 (12:00 +0000)
committerJiri Srain <jsrain@suse.cz>
Tue, 8 Nov 2005 12:00:04 +0000 (12:00 +0000)
zypp/Dependencies.cc
zypp/Resolvable.cc
zypp/Resolvable.h

index b08017b..8ee6f19 100644 (file)
@@ -146,8 +146,21 @@ namespace zypp
   const CapSet & Dependencies::freshens() const
   { return _pimpl->_freshens; }
 
-  // fix it
-#define ZYPP_DEPENDENCIES_COW if(_pimpl->refCount()>1){_pimpl= new detail::DependenciesImpl;}
+#define ZYPP_DEPENDENCIES_COW \
+if(_pimpl->refCount()>1) \
+{ \
+  detail::DependenciesImplPtr _cow_tmp = new detail::DependenciesImpl; \
+  _cow_tmp->_provides = _pimpl->_provides; \
+  _cow_tmp->_prerequires = _pimpl->_prerequires; \
+  _cow_tmp->_requires = _pimpl->_requires; \
+  _cow_tmp->_conflicts = _pimpl->_conflicts; \
+  _cow_tmp->_obsoletes = _pimpl->_obsoletes; \
+  _cow_tmp->_recommends = _pimpl->_recommends; \
+  _cow_tmp->_suggests = _pimpl->_suggests; \
+  _cow_tmp->_freshens = _pimpl->_freshens; \
+  _pimpl= _cow_tmp;\
+}
+
   void Dependencies::setProvides( const CapSet & val_r )
   { ZYPP_DEPENDENCIES_COW; _pimpl->_provides = val_r; }
 
index bf9b4cf..55d3785 100644 (file)
@@ -51,6 +51,9 @@ namespace zypp
   const Dependencies & Resolvable::deps() const
   { return _pimpl->deps(); }
 
+  void Resolvable::setDeps( const Dependencies & val_r )
+  { _pimpl->setDeps( val_r ); }
+
   ///////////////////////////////////////////////////////////////////
   //
   //   METHOD NAME : Resolvable::~Resolvable
index 1900763..fa10371 100644 (file)
@@ -57,6 +57,8 @@ namespace zypp
     const Arch & arch() const;
     /**  */
     const Dependencies & deps() const;
+    /** */
+    void setDeps( const Dependencies & val_r );
 
   private:
     /** Pointer to implementation */