]> git.lyx.org Git - lyx.git/blobdiff - src/CoordCache.cpp
Provide proper fallback if a bibliography processor is not found
[lyx.git] / src / CoordCache.cpp
index b540679544e1542c2f53169b716586e4a337f539..62c970a956c83de610a9365c2085a580b1c585da 100644 (file)
@@ -2,7 +2,7 @@
  * 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);
-}
+namespace lyx {
 
 // 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);
+       LBUFERR(false);
 }
 
 
@@ -43,46 +36,25 @@ void CoordCache::clear()
 {
        arrays_.clear();
        insets_.clear();
-       pars_.clear();
-       slices0_.clear();
-       slices1_.clear();
-}
-
-
-Point CoordCache::get(LyXText const * text, pit_type pit) 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;
-               }
+       if (getInsets().data_.empty()) {
+               LYXERR0("InsetCache is empty.");
+               return;
        }
 
-       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:");
+       CoordCache::Insets::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_);
        }
 }