X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Fmath_atom.C;h=bd5cda75be3aec9bbe5a9d2be7819ba77e7e862a;hb=07cc9f67534474b167ca1ea727bda643fdd8d197;hp=bcf72881cce99c386ffa57024577587021d6f221;hpb=ea35e1c460c3cbb4a9130aaeaed8e28dc0656961;p=lyx.git diff --git a/src/mathed/math_atom.C b/src/mathed/math_atom.C index bcf72881cc..bd5cda75be 100644 --- a/src/mathed/math_atom.C +++ b/src/mathed/math_atom.C @@ -1,27 +1,19 @@ -/* - * File: math_inset.C - * Purpose: Implementation of insets for mathed - * Author: Alejandro Aguilar Sierra - * Created: January 1996 - * Description: +/** + * \file math_atom.C + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - * Dependencies: Xlib, XForms + * \author André Pönitz * - * Copyright: 1996, 1997 Alejandro Aguilar Sierra - * - * Version: 0.8beta. - * - * You are free to use and modify this code under the terms of - * the GNU General Public Licence version 2 or later. + * Full author contact details are available in file CREDITS. */ -#ifdef __GNUG__ -#pragma implementation -#endif +#include #include "math_atom.h" #include "math_inset.h" -#include "support/LAssert.h" + +using std::swap; MathAtom::MathAtom() @@ -29,63 +21,29 @@ MathAtom::MathAtom() {} -MathAtom::MathAtom(MathInset * p) - : nucleus_(p) +MathAtom::MathAtom(InsetBase * p) + : nucleus_(static_cast(p)) {} -MathAtom::MathAtom(MathAtom const & p) +MathAtom::MathAtom(MathAtom const & at) + : nucleus_(0) { - copy(p); + if (at.nucleus_) + nucleus_ = static_cast(at.nucleus_->clone().release()); } -void MathAtom::operator=(MathAtom const & p) +void MathAtom::operator=(MathAtom const & at) { - if (this == &p) + if (&at == this) return; - done(); - copy(p); + MathAtom tmp(at); + swap(tmp.nucleus_, nucleus_); } MathAtom::~MathAtom() -{ - done(); -} - - -void MathAtom::reset(MathInset * p) -{ - done(); - nucleus_ = p; -} - - - -void MathAtom::done() { delete nucleus_; } - - -void MathAtom::copy(MathAtom const & p) -{ - //cerr << "calling MathAtom::copy\n"; - nucleus_ = p.nucleus_; - if (nucleus_) - nucleus_ = nucleus_->clone(); -} - - -MathInset * MathAtom::nucleus() const -{ - lyx::Assert(nucleus_); - return nucleus_; -} - - -MathInset * MathAtom::operator->() const -{ - return nucleus(); -}