[fpc-pascal] Need help to fix a bug

JoshyFun joshyfun at gmail.com
Sun Jan 24 19:04:19 CET 2010

Hello FPC-Pascal,

Sunday, January 24, 2010, 6:18:22 PM, you wrote:

JvdS> On Wed, 2010-01-13 at 16:13 +0100, JoshyFun wrote:
>> I wish to fix this bug http://bugs.freepascal.org/view.php?id=15460
>> but I had found serious problems to understand how data is structured
>> in the TBufIndex and descendant classes, specially the
>> TDoubleLinkedBufIndex.

JvdS> Oohh... nice... Someone to help me. ;)

I'll try, but I can not promise anything :(

JvdS> Too bad you used such a general topic-name, I almost overlooked it.

For sure the "need help to fix a bug" is not a common topic :) but I
understand that a reference to fcl-db should be included.

I'll answer to this email partially before a more in deep read.

JvdS> during the initial allocation for the data for the records. It's also
JvdS> why this merge-sort algorithm is used. It doesn't need any _additional_
JvdS> space.

Yes I understand the fact that the space is preallocated, but the data
flow in the BuildIndex is wrong in my opinion as in the first place it
copies index 0 over index 1, a simple copy, and them start to
mergesort everything in index 1, it it uses index 1 as a temporal
space to itself. I could had overlooked something but Merge Sort needs
a temporal space to drop data to be copied back or sometimes you will
overwrite data that will be moved again in next step. Something like:


Merging this will render in move "index 1" to position 0, and move
"index 0" to position 1, using itself as a temporal space will render

2 (1) 1  1
1  1 (1) 1
3  3  3  3

Index element 0 has dissapear () shows the moved element in each step.

Anyway I'll take an additional look to the code after reading your in
detail explanation. Thank you for the help.

Best regards,

More information about the fpc-pascal mailing list