зеркало из https://github.com/microsoft/git.git
kwset: allow building with GCC 8
The kwset functionality makes use of the obstack code, which expects to be handed a function that can allocate large chunks of data. It expects that function to accept a `size` parameter of type `long`. This upsets GCC 8 on Windows, because `long` does not have the same bit size as `size_t` there. Now, the proper thing to do would be to switch to `size_t`. But this would make us deviate from the "upstream" code even further, making it hard to synchronize with newer versions, and also it would be quite involved because that `long` type is so invasive in that code. Let's punt, and instead provide a super small wrapper around `xmalloc()`. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
8d4679fe09
Коммит
08e0450690
8
kwset.c
8
kwset.c
|
@ -38,7 +38,13 @@
|
|||
#include "compat/obstack.h"
|
||||
|
||||
#define NCHAR (UCHAR_MAX + 1)
|
||||
#define obstack_chunk_alloc xmalloc
|
||||
/* adapter for `xmalloc()`, which takes `size_t`, not `long` */
|
||||
static void *obstack_chunk_alloc(long size)
|
||||
{
|
||||
if (size < 0)
|
||||
BUG("Cannot allocate a negative amount: %ld", size);
|
||||
return xmalloc(size);
|
||||
}
|
||||
#define obstack_chunk_free free
|
||||
|
||||
#define U(c) ((unsigned char) (c))
|
||||
|
|
Загрузка…
Ссылка в новой задаче