Adrian Buehlmann <adrian@cadifra.com> [Tue, 08 May 2012 11:20:07 +0200] rev 16604
parsers: statically initializing tp_new to PyType_GenericNew is not portable
As detailed on http://docs.python.org/extending/newtypes.html (quote):
"In this case, we can just use the default implementation provided by the API
function PyType_GenericNew(). We’d like to just assign this to the
tp_new slot, but we can’t, for portability sake. On some platforms or
compilers, we can’t statically initialize a structure member with a function
defined in another C module, so, instead, we’ll assign the tp_new slot in the
module initialization function just before calling PyType_Ready()."
Fixes "gcc (GCC) 3.4.5 (mingw-vista special r3)" complaining with:
mercurial/parsers.c:1096: error: initializer element is not constant
mercurial/parsers.c:1096: error: (near initialization for `indexType.tp_new')
Matt Mackall <mpm@selenic.com> [Tue, 08 May 2012 12:05:45 -0500] rev 16603
merge with stable
Matt Mackall <mpm@selenic.com> [Sun, 06 May 2012 14:37:51 -0500] rev 16602
context: add copies method with caching
Matt Mackall <mpm@selenic.com> [Sun, 06 May 2012 14:20:53 -0500] rev 16601
filectx: handle some other simple cases for finding merge ancestor
Matt Mackall <mpm@selenic.com> [Sun, 06 May 2012 14:15:17 -0500] rev 16600
graft: remark on empty graft
Matt Mackall <mpm@selenic.com> [Fri, 04 May 2012 17:27:14 -0500] rev 16599
filectx: make ancestor require actx
When grafting or rebasing, we need to know the target ancestor.