I found the problem. It is BetterString's internal handling of its string contents. There are 3 different buffers (normal, undo, original), but BetterString kept an allocation size for only one of these. Doing any action which caused the undo buffer to be used (i.e. delete a marked section) would simply swap the normal and undo pointers. However, the remembered allocation size for the former content string was still applied to the swapped string pointer with a (most probably different and smaller) allocation size and hence would trash memory.

I will attach fixed versions for AmigaOS3, AmigaOS4 and MorphOS. Please reopen this ticket if these versions still cause issues.

Add Comment

This ticket has been modified since you started editing. You should review the
other modifications which have been appended above,
and any conflicts shown in the preview below.
You can nevertheless proceed and submit your changes if you wish so.