X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Fmath_atom.C;h=bd5cda75be3aec9bbe5a9d2be7819ba77e7e862a;hb=07cc9f67534474b167ca1ea727bda643fdd8d197;hp=57acb4a0a7d9b8a113eaeb2c822604f121e6df67;hpb=c0ef23bc2a2f2b3bd6c3520e0c0bd6223bb1a1a2;p=lyx.git diff --git a/src/mathed/math_atom.C b/src/mathed/math_atom.C index 57acb4a0a7..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,55 +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) { - done(); - copy(p); - } + if (&at == this) + return; + MathAtom tmp(at); + swap(tmp.nucleus_, nucleus_); } MathAtom::~MathAtom() -{ - done(); -} - - -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(); -}