[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