Re: [PATCH] http: use xmalloc with cURL
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 15, 2019, 17:11 UTC
- Message-ID
- <xmqq5zmy4ami.fsf@gitster-ct.c.googlers.com>
- In-Reply-To
- <20190815153504.23199-1-carenas@gmail.com>
Carlo Marcelo Arenas Belón <carenas@gmail.com> writes:
Show 19 quoted lines
> f0ed8226c9 (Add custom memory allocator to MinGW and MacOS builds, 2009-05-31) > never told cURL about it. > > Correct that by using the cURL initializer available since version 7.12 to > point to xmalloc and friends for consistency which then will pass the > allocation requests along when USE_NED_ALLOCATOR=YesPlease is used (most > likely in Windows) > > Signed-off-by: Carlo Marcelo Arenas Belón <carenas@gmail.com> > --- > This doesn't conflict with anything and was originally based on maint (so it > applies cleanly also to master and next), but is now rebased on top of > jk/drop-release-pack-memory so the final product wouldn't have any chance to > introduce problems (thanks Peff) > > it has been built and tested in Windows through Azure Pipelines (thanks Dscho) > and shouldn't introduce any build problems even with ancient versions or cURL > (thanks Daniel) and while not strictly needed is a nice thing to have for > consistency (thanks Junio)
Thanks, all. I do not think I did anything that deserves a "thanks", but anyway.
Show 23 quoted lines
> http.h | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/http.h b/http.h
> index b429f1cf04..e5f075dcbf 100644
> --- a/http.h
> +++ b/http.h
> @@ -22,9 +22,15 @@
> #define DEFAULT_MAX_REQUESTS 5
> #endif
>
> +#if LIBCURL_VERSION_NUM >= 0x070c00
> +#define curl_global_init(a) curl_global_init_mem(a, xmalloc, free, \
> + xrealloc, xstrdup, xcalloc)
> +#endif
> +
> #if LIBCURL_VERSION_NUM < 0x070704
> #define curl_global_cleanup() do { /* nothing */ } while (0)
> #endif
> +
> #if LIBCURL_VERSION_NUM < 0x070800
> #define curl_global_init(a) do { /* nothing */ } while (0)
> #endifThe earlier version had definitions pertaining to curl_global_init() at a single place, but the above version allows arbitrary amount of unrelated stuff to be placed in between two definitions in future updates. Is that a good idea? I sort of expected "we always call global_init(), but if curl is old enough to lack it, define it as empty, and if curl is new enough to have curl_global_init_mem(), then call it instead" #if/#else/#if/#endif/#endif cascade.
> > base-commit: 9827d4c185e4da728f51cd77c54a38c9de62495f