[EMAIL PROTECTED] wrote:

> Author: younes
> Date: Thu Oct 18 17:29:51 2007
> New Revision: 21033
> 
> URL: http://www.lyx.org/trac/changeset/21033
> Log:
> Reduce header dependencies in Paragraph.h
> - Move Changes.h out of Paragraph.h
> - pimpl the inset list.

==============================================================================
> --- lyx-devel/trunk/src/InsetList.cpp (original) +++
> lyx-devel/trunk/src/InsetList.cpp Thu Oct 18 17:29:51 2007 @@ -138,4
> +138,12 @@
>  }
>  
>  
> +void InsetList::clone()
> +{
> +     List::iterator it = list_.begin();
> +     List::iterator end = list_.end();
> +     for (; it != end; ++it)
> +             it->inset = it->inset->clone();
> +}
> +
>  } // namespace lyx

==============================================================================
> --- lyx-devel/trunk/src/Paragraph.cpp (original) +++
> lyx-devel/trunk/src/Paragraph.cpp Thu Oct 18 17:29:51 2007 @@ -21,10
> @@ -277,6 +282,8 @@
>  inset_owner = p.inset_owner;
>  fontlist = p.fontlist;
>  id_ = paragraph_id++;
> +     insetlist_ = p.insetlist_;
> +     insetlist_.clone();
>  }

This is a very strange "clone". Why aren't you writing it:

   class InsetList {
       static InsetList clone(InsetList & rhs)
       {
           InsetList lhs = rhs;
           List::iterator it = lhs.begin();
           List::iterator const end = lhs.end();
           for (; it != end; ++it)
           {
               // Indeed, I think Inset::clone should be similar.
               it->inset = it->inset->clone();
           }
           return lhs;
       }
   };

 ?

Angus

Reply via email to