git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 1/4] diff.c: call regfree to free memory allocated by regcomp when necessary

From
Jeff King <peff@peff.net>
Date
Sep 9, 2010, 19:15 UTC
Message-ID
<20100909191557.GB32508@sigill.intra.peff.net>
In-Reply-To
<rRj7JpFIk_D_n7-wGkkucFJE0330IabsqMoSzalswHpjT-Z1HCuOFaIgMsaPgIuQSp0KUMW97Wo@cipher.nrlssc.navy.mil>
On Thu, Sep 09, 2010 at 02:02:45PM -0500, Brandon Casey wrote:
Show 9 quoted lines
> @@ -919,7 +919,10 @@ static void free_diff_words_data(struct emit_callback *ecbdata)
>  		free (ecbdata->diff_words->minus.orig);
>  		free (ecbdata->diff_words->plus.text.ptr);
>  		free (ecbdata->diff_words->plus.orig);
> -		free(ecbdata->diff_words->word_regex);
> +		if (ecbdata->diff_words->word_regex) {
> +			regfree(ecbdata->diff_words->word_regex);
> +			free(ecbdata->diff_words->word_regex);
> +		}

Makes sense, and closes a leak. But I wonder why word_regex is a pointer to malloc'd memory at all? Couldn't it just be an actual regex_t inside the diff_words struct, and we regcomp and regfree it?

I guess maybe having it be NULL is useful. You could check diff_words->o->word_regex, but I suppose that would mean carrying an extra variable around through the callchain.

-Peff
Previous: Brandon Casey
Message 16 of 16 in “diff.c: call regfree to free memory allocated by regcomp when necessary”
  1. 1/4 diff.c: call regfree to free memory allocated by regcomp when necessaryBrandon Casey, Sep 9, 2010
  2. 2/4 xdiff-interface.c: always trim trailing space from xfuncname matchesBrandon Casey, Sep 9, 2010
  3. Jeff KingSep 9, 2010
  4. Brandon CaseySep 9, 2010
  5. Jeff KingSep 9, 2010
  6. 3/4 t/t4018: test whether the word_regex patterns compileBrandon Casey, Sep 9, 2010
  7. Jeff KingSep 9, 2010
  8. Brandon CaseySep 9, 2010
  9. Jeff KingSep 9, 2010
  10. t/t4018: avoid two unnecessary sub-shell invocationsBrandon Casey, Sep 10, 2010
  11. Ævar Arnfjörð BjarmasonSep 10, 2010
  12. 4/4 userdiff.c: add builtin fortran regex patternsBrandon Casey, Sep 9, 2010
  13. Jeff KingSep 9, 2010
  14. Brandon CaseySep 9, 2010
  15. 4/4 userdiff.c: add builtin fortran regex patternsBrandon Casey, Sep 10, 2010
  16. Jeff KingSep 9, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.