git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH] http: use xmalloc with cURL
@ 2019-08-15 15:35 Carlo Marcelo Arenas Belón
  2019-08-15 17:11 ` Junio C Hamano
  2019-08-15 19:13 ` [PATCH v2] " Carlo Marcelo Arenas Belón
  0 siblings, 2 replies; 6+ messages in thread
From: Carlo Marcelo Arenas Belón @ 2019-08-15 15:35 UTC (permalink / raw)
  To: git; +Cc: Johannes.Schindelin, daniel, peff, gitster

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)

 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)
 #endif

base-commit: 9827d4c185e4da728f51cd77c54a38c9de62495f
-- 
2.23.0.rc2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] http: use xmalloc with cURL
  2019-08-15 15:35 [PATCH] http: use xmalloc with cURL Carlo Marcelo Arenas Belón
@ 2019-08-15 17:11 ` Junio C Hamano
  2019-08-15 19:13 ` [PATCH v2] " Carlo Marcelo Arenas Belón
  1 sibling, 0 replies; 6+ messages in thread
From: Junio C Hamano @ 2019-08-15 17:11 UTC (permalink / raw)
  To: Carlo Marcelo Arenas Belón; +Cc: git, Johannes.Schindelin, daniel, peff

Carlo Marcelo Arenas Belón  <carenas@gmail.com> writes:

> 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.
>  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)
>  #endif

The 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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v2] http: use xmalloc with cURL
  2019-08-15 15:35 [PATCH] http: use xmalloc with cURL Carlo Marcelo Arenas Belón
  2019-08-15 17:11 ` Junio C Hamano
@ 2019-08-15 19:13 ` Carlo Marcelo Arenas Belón
  2019-08-15 19:34   ` Junio C Hamano
  1 sibling, 1 reply; 6+ messages in thread
From: Carlo Marcelo Arenas Belón @ 2019-08-15 19:13 UTC (permalink / raw)
  To: git; +Cc: Johannes.Schindelin, daniel, peff

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>
---

Notes:
    v2: keep all global_init ifdefs together (as suggested by Junio)

 http.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/http.h b/http.h
index b429f1cf04..20a2030c94 100644
--- a/http.h
+++ b/http.h
@@ -25,8 +25,12 @@
 #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)
+#elseif LIBCURL_VERSION_NUM >= 0x070c00
+#define curl_global_init(a) curl_global_init_mem(a, xmalloc, free, \
+						xrealloc, xstrdup, xcalloc)
 #endif
 
 #if (LIBCURL_VERSION_NUM < 0x070c04) || (LIBCURL_VERSION_NUM == 0x071000)

base-commit: 9827d4c185e4da728f51cd77c54a38c9de62495f
-- 
2.23.0.rc2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2] http: use xmalloc with cURL
  2019-08-15 19:13 ` [PATCH v2] " Carlo Marcelo Arenas Belón
@ 2019-08-15 19:34   ` Junio C Hamano
  2019-08-15 21:44     ` [PATCH v3] " Carlo Marcelo Arenas Belón
  0 siblings, 1 reply; 6+ messages in thread
From: Junio C Hamano @ 2019-08-15 19:34 UTC (permalink / raw)
  To: Carlo Marcelo Arenas Belón; +Cc: git, Johannes.Schindelin, daniel, peff

Carlo Marcelo Arenas Belón  <carenas@gmail.com> writes:

> +#elseif LIBCURL_VERSION_NUM >= 0x070c00

#elif

> +#define curl_global_init(a) curl_global_init_mem(a, xmalloc, free, \
> +						xrealloc, xstrdup, xcalloc)
>  #endif
>  
>  #if (LIBCURL_VERSION_NUM < 0x070c04) || (LIBCURL_VERSION_NUM == 0x071000)
>
> base-commit: 9827d4c185e4da728f51cd77c54a38c9de62495f

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH v3] http: use xmalloc with cURL
  2019-08-15 19:34   ` Junio C Hamano
@ 2019-08-15 21:44     ` Carlo Marcelo Arenas Belón
  2019-08-15 22:18       ` Junio C Hamano
  0 siblings, 1 reply; 6+ messages in thread
From: Carlo Marcelo Arenas Belón @ 2019-08-15 21:44 UTC (permalink / raw)
  To: git; +Cc: gitster, Johannes.Schindelin, daniel, peff

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>
---
v3: proper use of #elif (Thanks Junio)
v2: keep all curl_global_init ifdefs together (as suggested by Junio)

 http.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/http.h b/http.h
index b429f1cf04..20a2030c94 100644
--- a/http.h
+++ b/http.h
@@ -25,8 +25,12 @@
 #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)
+#elif LIBCURL_VERSION_NUM >= 0x070c00
+#define curl_global_init(a) curl_global_init_mem(a, xmalloc, free, \
+						xrealloc, xstrdup, xcalloc)
 #endif
 
 #if (LIBCURL_VERSION_NUM < 0x070c04) || (LIBCURL_VERSION_NUM == 0x071000)

base-commit: 9827d4c185e4da728f51cd77c54a38c9de62495f
-- 
2.23.0.rc2

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v3] http: use xmalloc with cURL
  2019-08-15 21:44     ` [PATCH v3] " Carlo Marcelo Arenas Belón
@ 2019-08-15 22:18       ` Junio C Hamano
  0 siblings, 0 replies; 6+ messages in thread
From: Junio C Hamano @ 2019-08-15 22:18 UTC (permalink / raw)
  To: Carlo Marcelo Arenas Belón; +Cc: git, Johannes.Schindelin, daniel, peff

Carlo Marcelo Arenas Belón  <carenas@gmail.com> writes:

>  #if LIBCURL_VERSION_NUM < 0x070800
>  #define curl_global_init(a) do { /* nothing */ } while (0)
> +#elif LIBCURL_VERSION_NUM >= 0x070c00
> +#define curl_global_init(a) curl_global_init_mem(a, xmalloc, free, \
> +						xrealloc, xstrdup, xcalloc)
>  #endif

Yup.  That looks better.

If your curl version is recent enough (which presumably is true for
most people these days), the entire #if/#endif block is skipped
while scanning for #else or #elif and #elseif willq be silently
ignored; it is unfortunate that #elseif won't be flagged by CPP as a
potential error X-<.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-08-15 22:18 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-15 15:35 [PATCH] http: use xmalloc with cURL Carlo Marcelo Arenas Belón
2019-08-15 17:11 ` Junio C Hamano
2019-08-15 19:13 ` [PATCH v2] " Carlo Marcelo Arenas Belón
2019-08-15 19:34   ` Junio C Hamano
2019-08-15 21:44     ` [PATCH v3] " Carlo Marcelo Arenas Belón
2019-08-15 22:18       ` Junio C Hamano

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).