Martin Vermeer wrote:
On Fri, Oct 12, 2007 at 09:06:00PM -0700, Angus Leeming wrote:
 [EMAIL PROTECTED] wrote:
 BufferView::BufferView(Buffer & buf)
-       : width_(0), height_(0), buffer_(buf), wh_(0),
-         cursor_(*this),
-         multiparsel_cache_(false), anchor_ref_(0), offset_ref_(0),
-         need_centering_(false), intl_(new Intl), last_inset_(0),
-         gui_(0)
-{
-       xsel_cache_.set = false;
-       intl_->initKeyMapper(lyxrc.use_kbmap);
-
-       cursor_.push(buffer_.inset());
-       cursor_.resetAnchor();
-       cursor_.setCurrentFont();
+       : width_(0), height_(0), buffer_(buf), d(*new BufferViewPrivate(*this))
Oh, c'mon! Please! If it's a pointer, it's a pointer. Don't make it something it isn't.

@@ -372,7 +424,33 @@
        // restore to the left of the top level inset.
        LyX::ref().session().lastFilePos().save(
                support::FileName(buffer_.fileName()),
-               boost::tie(cursor_.bottom().pit(), cursor_.bottom().pos()) );
+               boost::tie(d.cursor_.bottom().pit(), d.cursor_.bottom().pos()) 
);
+
+       delete &d;
I rest my case. If you want reference semantics (and given that this is private, there's no need for that), then either put 'd' on the stack or use an accessor.

 Angus

Didn't we have pimpl for this? And didn't we get rid of it for
some (good?) reason?

I am the one who got rid of the pimpl because everthing was intermixed between the main and private implementation for no good reason and it was easier to cleanup after the merge. This new private implementation is simpler: there's no pimpl layer for each and every function.

Abdel.

Reply via email to