[sword-devel] Odd behavior in ListKey

DM Smith dmsmith at crosswire.org
Thu Jun 12 19:03:09 EDT 2025


Troy,

I’m working on an infinite loop bug in osis2mod.

I’ve narrowed it down to ListKey containing a verse with a chapter which is beyond the end of a book.

When this happens list.increment(1) never sets an error.

Simplest test case (bit incomplete):

int i = 0;
ListKey list = new ListKey();
list.add(“Gen.51.1”);
for (list = TOP; !list.popError(); list.increment(1)) {
	if (i++ > 5) break;
	cout << i << list << endl;
}

If I change the verse reference to Gen.1.99 (valid chapter, invalid verse), it works as expected.

Can you figure out the problem?

I’ve got a work around but I’d rather not do that.

Thanks,
	DM



More information about the sword-devel mailing list