lyx_mirror/src/CoordCache.cpp
Richard Heck 1b1f8dd235 Audit all the LASSERT calls, and try to do something sensible at
each failure.

There are several places I was not sure what to do. These are marked
by comments beginning "LASSERT:" so they can be found easily. At the
moment, they are at:

Author.cpp:105: // LASSERT: What should we do here?
Author.cpp:121: // LASSERT: What should we do here?
Buffer.cpp:4525:        // LASSERT: Is it safe to continue here, or should we just return?
Cursor.cpp:345:         // LASSERT: Is it safe to continue here, or should we return?
Cursor.cpp:403:         // LASSERT: Is it safe to continue here, or should we return?
Cursor.cpp:1143:                // LASSERT: There have been several bugs around this code, that seem
CursorSlice.cpp:83:     // LASSERT: This should only ever be called from an InsetMath.
CursorSlice.cpp:92:     // LASSERT: This should only ever be called from an InsetMath.
LayoutFile.cpp:303:                     // LASSERT: Why would this fail?
Text.cpp:995:           // LASSERT: Is it safe to continue here?
2013-04-25 17:27:10 -04:00

67 lines
1.4 KiB
C++

/* \file CoordCache.cpp
* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
* \author André Pönitz
*
* Full author contact details are available in file CREDITS.
*/
#include <config.h>
#include "CoordCache.h"
#include "Text.h"
#include "support/debug.h"
#include "support/docstring.h"
#include "insets/Inset.h"
#include "support/lassert.h"
namespace lyx {
Point::Point(int x, int y)
: x_(x), y_(y)
{
LASSERT(x > -1000000, x = -1000000);
LASSERT(x < 1000000, x = 1000000);
LASSERT(y > -1000000, y = -1000000);
LASSERT(y < 1000000, y = 1000000);
}
// just a helper to be able to set a breakpoint
void lyxbreaker(void const * data, const char * hint, int size)
{
LYXERR0("break on pointer: " << data << " hint: " << hint
<< " size: " << size);
LASSERT(false, return);
}
void CoordCache::clear()
{
arrays_.clear();
insets_.clear();
}
void CoordCache::dump() const
{
LYXERR0("InsetCache contains:");
CoordCacheBase<Inset>::cache_type::const_iterator it =
getInsets().data_.begin();
for (; it != getInsets().data_.end(); ++it) {
// Warning: it is not guaranteed that inset is a valid pointer
// (therefore it has type 'void *') (see bug #7376).
void const * inset = it->first;
Point const p = it->second.pos;
LYXERR0("Inset " << inset << " has point " << p.x_ << "," << p.y_);
}
}
} // namespace lyx