Re: [PATCH 1/3] mem-pool: add convenience functions for xstrdup and xstrndup
- From
Eric Sunshine <sunshine@sunshineco.com>
- Date
- Aug 14, 2020, 04:42 UTC
- Message-ID
- <CAPig+cQamHAUc9gV=pRAVYfxJKCwiMj=y6nqoN8w2kg6CtOT9Q@mail.gmail.com>
- In-Reply-To
- <eae8b2923f7834f3b1d030f6eb4dc093b94da91b.1597374135.git.gitgitgadget@gmail.com>
On Thu, Aug 13, 2020 at 11:02 PM Elijah Newren via GitGitGadget <gitgitgadget@gmail.com> wrote:
Show 16 quoted lines
> fast-import had a special mem_pool_xstrdup() convenience function that I
> want to be able to use from the new merge algorithm I am writing. Move
> it from fast-import to mem-pool, and also add a mem_pool_xstrndup()
> while at it that I also want to use.
>
> Signed-off-by: Elijah Newren <newren@gmail.com>
> ---
> diff --git a/mem-pool.c b/mem-pool.c
> @@ -102,6 +102,29 @@ void *mem_pool_calloc(struct mem_pool *mem_pool, size_t count, size_t size)
> +char *mem_pool_xstrdup(struct mem_pool *pool, const char *str)
> +{
> + size_t len = strlen(str) + 1;
> + char *ret = mem_pool_alloc(pool, len);
> +
> + if (!ret)
> + die("Out of memory, mem_pool_xstrdup failed");Nit: Not worth a re-roll, but I was wondering if it would make sense to allow these to be localized (and follow current convention of not capitalizing):
die(_("mem_pool_xstrdup: out of memory"));Show 10 quoted lines
> + return memcpy(ret, str, len);
> +}
> +
> +char *mem_pool_xstrndup(struct mem_pool *pool, const char *str, size_t len)
> +{
> + size_t minlen = strnlen(str, len);
> + char *ret = mem_pool_alloc(pool, minlen+1);
> +
> + if (!ret)
> + die("Out of memory, mem_pool_xstrndup failed");Ditto.
> + > + ret[minlen] = '\0'; > + return memcpy(ret, str, minlen); > +}