Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ Library support » RichText,QTF,RTF... » BUG? in TxtPaint.cpp
Re: BUG? in TxtPaint.cpp [message #46757 is a reply to message #46756] Thu, 28 July 2016 08:39 Go to previous messageGo to previous message
koldo is currently offline  koldo
Messages: 3361
Registered: August 2008
Senior Veteran
Yes. That line crashes my applications.

Look at this:
void RichTxt::GatherValPos(Vector<RichValPos>& f, RichContext rc, int pos, int type) const
{
	int parti = 0;
	while(parti < part.GetCount()) {          <-- This checks parti is in part[] scope
		RichContext begin;
		Advance(parti++, rc, begin);      <-- parti is incremented
		if(part[parti].Is<RichTable>())   <-- parti == part.GetCount() ERROR!
			GetTable(parti).GatherValPos(f, begin, pos, type);
		else {
			int nbefore = 0;
			int nline = 0;
			const Para& p = part[parti].Get<Para>();
			if(p.haspos)
				if(type == LABELS)
					Get(parti, *begin.styles, true).GatherLabels(f, begin.page, begin.py, pos);
				else
					Get(parti, *begin.styles, true).GatherIndexes(f, begin.page, begin.py, pos);
		}
		pos += GetPartLength(parti) + 1;
	}
}


Maybe this could be better:
void RichTxt::GatherValPos(Vector<RichValPos>& f, RichContext rc, int pos, int type) const
{
	int parti = 0;
	while(parti < part.GetCount()) {
		RichContext begin;
		Advance(parti, rc, begin);          <-- parti is not incremented here
		if(part[parti].Is<RichTable>())
			GetTable(parti).GatherValPos(f, begin, pos, type);
		else {
			int nbefore = 0;
			int nline = 0;
			const Para& p = part[parti].Get<Para>();
			if(p.haspos)
				if(type == LABELS)
					Get(parti, *begin.styles, true).GatherLabels(f, begin.page, begin.py, pos);
				else
					Get(parti, *begin.styles, true).GatherIndexes(f, begin.page, begin.py, pos);
		}
		pos += GetPartLength(parti) + 1;
		parti++;                          <-- parti is incremented here
	}
}


Best regards
IƱaki
 
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Only one RichEdit on one Form possible?
Next Topic: Attach Digital signature to created PDF
Goto Forum:
  


Current Time: Thu May 09 05:31:10 CEST 2024

Total time taken to generate the page: 0.01778 seconds