[PATCH 2 of 4 v2] mpatch: shuffle stuff around so it's easier to make a cffi version of mpatch

Maciej Fijalkowski fijall at gmail.com
Mon Jun 27 10:37:03 EDT 2016


On Mon, Jun 27, 2016 at 3:54 PM, Yuya Nishihara <yuya at tcha.org> wrote:
> On Thu, 23 Jun 2016 08:57:09 +0200, Maciej Fijalkowski wrote:
>> # HG changeset patch
>> # User Maciej Fijalkowski <fijall at gmail.com>
>> # Date 1465303444 -7200
>> #      Tue Jun 07 14:44:04 2016 +0200
>> # Node ID f5a166fffae1ade1e5b7bcad759a3899813bd91f
>> # Parent  d62df3ee14e3b2cf658c247233bda60def219e0f
>> mpatch: shuffle stuff around so it's easier to make a cffi version of mpatch
>
>> +static struct flist *lalloc(ssize_t size)
>
> IIRC, ssize_t is available only on posix environment. We'll need typedef for
> Windows.
>
>> -static struct flist *decode(const char *bin, Py_ssize_t len)
>> +int decode(const char *bin, ssize_t len, struct flist** res)
>>  {
>>       struct flist *l;
>>       struct frag *lt;
>> @@ -208,7 +195,7 @@
>>       /* assume worst case size, we won't have many of these lists */
>>       l = lalloc(len / 12 + 1);
>>       if (!l)
>> -             return NULL;
>> +             return MPATCH_ERR_NO_MEM;
>
> It would greatly help reviewing patches if error handling changes were
> made in a separate patch.

I would vastly prefer not to do this - removing Python.h from includes
is the point of this patch (otherwise you end up in a strange state
where you shuffle stuff around, btu it's actually useless)

>
>> +int decode(const char *bin, ssize_t len, struct flist** res);
>> +struct flist *combine(struct flist *a, struct flist *b);
>> +ssize_t calcsize(ssize_t len, struct flist *l);
>> +void lfree(struct flist *a);
>> +int apply(char *buf, const char *orig, ssize_t len, struct flist *l);
>> +ssize_t _patchedsize(long orig, char* bin, ssize_t patchlen);
>> +struct flist *fold(void *bins, struct flist* (*get_next_item)(void*, ssize_t),
>> +                    ssize_t start, ssize_t end);
>
> I'm not sure if we can export these functions without a risk of name
> conflicts.

Fair point. I think these days I'm only using "fold" so I'll just
change its name


More information about the Mercurial-devel mailing list