[MERGE] Handle references to line data in _patiencediff_c.c properly
Lukáš Lalinský
lalinsky at gmail.com
Sat Aug 23 14:09:19 BST 2008
Dňa Ne, 2008-08-17 o 14:46 -0500, John Arbash Meinel napísal:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Lukáš Lalinský wrote:
> > This code is called in bzrlib only with lists or tuples of strings,
> > which works fine, because PySequence_Fast always returns the same object
> > and so the items from PySequence_Fast_GET_ITEM will not be deleted until
> > the original sequence is deleted. But if it's called with a sequence
> > than needs to be converted to list (e.g. PyUnicode), the items will be
> > garbage collected in the contructor and still used later in code (which
> > leads to segfaults).
> >
> > I really don't how to write a failing test for something like this, so
> > there are no tests in the patch. :(
> >
> > Lukas
>
> So... just write a test that we can do PatienceDiff on a Unicode sequence.
>
> matcher = PatienceSequenceMatcher(u'Ab\xb5\u1234', u'....')
> matcher.get_matching_blocks()
Ok, I've added a test that always fails with the old code.
Lukas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patiencediff-refs.diff
Type: text/x-patch
Size: 6603 bytes
Desc: not available
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20080823/b1570274/attachment.bin
More information about the bazaar
mailing list