Five more percent.

I'd really prefer if people would not add unused code to critical
paths..


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22534 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
André Pönitz 2008-01-12 23:08:21 +00:00
parent f7e4d591dc
commit 57d2f9c0ad
2 changed files with 25 additions and 14 deletions

View File

@ -247,24 +247,16 @@ Inset * DocIterator::innerInsetOfType(int code) const
} }
void DocIterator::forwardPos(bool ignorecollapsed) // This duplicates code above, but is in the critical path.
// So please think twice before adding stuff
void DocIterator::forwardPos()
{ {
//this dog bites his tail // this dog bites his tail
if (empty()) { if (empty()) {
push_back(CursorSlice(*inset_)); push_back(CursorSlice(*inset_));
return; return;
} }
Inset * const nextinset = nextInset();
// jump over collapsables if they are collapsed
// FIXME: the check for asInsetMath() shouldn't be necessary
// but math insets do not return a sensible editable() state yet.
if (ignorecollapsed && nextinset && (!nextinset->asInsetMath()
&& nextinset->editable() != Inset::HIGHLY_EDITABLE)) {
++top().pos();
return;
}
CursorSlice & tip = top(); CursorSlice & tip = top();
//lyxerr << "XXX\n" << *this << endl; //lyxerr << "XXX\n" << *this << endl;
@ -302,6 +294,20 @@ void DocIterator::forwardPos(bool ignorecollapsed)
} }
void DocIterator::forwardPosIgnoreCollapsed()
{
Inset * const nextinset = nextInset();
// FIXME: the check for asInsetMath() shouldn't be necessary
// but math insets do not return a sensible editable() state yet.
if (nextinset && !nextinset->asInsetMath()
&& nextinset->editable() != Inset::HIGHLY_EDITABLE) {
++top().pos();
return;
}
forwardPos();
}
void DocIterator::forwardPar() void DocIterator::forwardPar()
{ {
forwardPos(); forwardPos();

View File

@ -159,9 +159,14 @@ public:
// //
/** /**
* move on one logical position, descend into nested insets * move on one logical position, descend into nested insets
* skip collapsed insets if \p ignorecollapsed is true * including collapsed insets
*/ */
void forwardPos(bool ignorecollapsed = false); void forwardPos();
/**
* move on one logical position, descend into nested insets
* skip collapsed insets
*/
void forwardPosIgnoreCollapsed();
/// move on one physical character or inset /// move on one physical character or inset
void forwardChar(); void forwardChar();
/// move on one paragraph /// move on one paragraph