* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author André Pönitz
+ * \author André Pönitz
*
* Full author contact details are available in file CREDITS.
*/
#include <config.h>
#include "CoordCache.h"
-#include "debug.h"
-#include "LyXText.h"
+#include "Text.h"
-#include "insets/InsetBase.h"
+#include "support/debug.h"
+#include "support/docstring.h"
-#include <boost/assert.hpp>
+#include "insets/Inset.h"
+
+#include "support/lassert.h"
namespace lyx {
Point::Point(int x, int y)
: x_(x), y_(y)
{
- BOOST_ASSERT(x > -1000000);
- BOOST_ASSERT(x < 1000000);
- BOOST_ASSERT(y > -1000000);
- BOOST_ASSERT(y < 1000000);
+ LASSERT(x > -1000000, /**/);
+ LASSERT(x < 1000000, /**/);
+ LASSERT(y > -1000000, /**/);
+ LASSERT(y < 1000000, /**/);
}
+
// just a helper to be able to set a breakpoint
void lyxbreaker(void const * data, const char * hint, int size)
{
- lyxerr << "break on pointer: " << data << " hint: " << hint
- << " size: " << size << std::endl;
- BOOST_ASSERT(false);
+ LYXERR0("break on pointer: " << data << " hint: " << hint
+ << " size: " << size);
+ LASSERT(false, return);
}
{
arrays_.clear();
insets_.clear();
- pars_.clear();
- slices0_.clear();
- slices1_.clear();
}
-Point CoordCache::get(LyXText const * text, pit_type pit) const
+void CoordCache::dump() const
{
- ParPosCache::const_iterator const it = pars_.find(text);
- BOOST_ASSERT(it != pars_.end());
- InnerParPosCache::const_iterator const posit = it->second.find(pit);
- BOOST_ASSERT(posit != it->second.end());
- return posit->second;
-}
-
-void
-CoordCache::dump() const {
- lyxerr << "ParPosCache contains:" << std::endl;
- for (ParPosCache::const_iterator i = getParPos().begin(); i != getParPos().end(); ++i) {
- LyXText const * lt = (*i).first;
- InnerParPosCache const & cache = (*i).second;
- lyxerr << "LyXText:" << lt << std::endl;
- for (InnerParPosCache::const_iterator j = cache.begin(); j != cache.end(); ++j) {
- pit_type pit = (*j).first;
- Paragraph const & par = lt->getPar(pit);
- Point p = (*j).second;
- lyxerr << "Paragraph " << pit << ": \"";
- for (int k = 0; k < std::min(static_cast<lyx::pos_type>(10), par.size()); ++k) {
- lyxerr << to_utf8(docstring(1,par.getChar(k)));
- }
- lyxerr << "\" has point " << p.x_ << "," << p.y_ << std::endl;
- }
- }
-
- lyxerr << "InsetCache contains:" << std::endl;
- for (CoordCacheBase<InsetBase>::cache_type::const_iterator i = getInsets().getData().begin(); i != getInsets().getData().end(); ++i) {
- InsetBase const * inset = (*i).first;
- Point p = (*i).second;
- lyxerr << "Inset " << inset << "(" << to_utf8(inset->getInsetName()) << ") has point " << p.x_ << "," << p.y_ << std::endl;
+ 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_);
}
}