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

[PATCH v4 03/19] apply: clear_image() clears things a bit more

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 10, 2012, 07:03 UTC
Message-ID
<1341903852-4815-4-git-send-email-gitster@pobox.com>
In-Reply-To
<1341903852-4815-1-git-send-email-gitster@pobox.com>

The clear_image() function did not clear the line table in the image structure; this does not matter for the current callers, as the function is only called from the codepaths that deal with binary patches where the line table is never populated, and the codepaths that do populate the line table free it themselves.

But it will start to matter when we introduce a codepath to retry a failed patch, so make sure it clears and frees everything.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 builtin/apply.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/builtin/apply.c b/builtin/apply.c
index 35460c9..09f5df3 100644
--- a/builtin/apply.c
+++ b/builtin/apply.c
@@ -371,8 +371,8 @@ static void prepare_image(struct image *image, char *buf, size_t len,
 static void clear_image(struct image *image)
 {
 	free(image->buf);
-	image->buf = NULL;
-	image->len = 0;
+	free(image->line_allocated);
+	memset(image, 0, sizeof(*image));
 }
 
 /* fmt must contain _one_ %s and no other substitution */
-- 
1.7.11.1.294.g68a9409
Previous: Junio C HamanoNext: Junio C Hamano
Message 4 of 20 in “"git apply --3way"”
  1. 00/19 "git apply --3way"Junio C Hamano, Jul 10, 2012
  2. 01/19 apply: fix an incomplete comment in check_patch()Junio C Hamano, Jul 10, 2012
  3. 02/19 apply: a bit more comments on PATH_TO_BE_DELETEDJunio C Hamano, Jul 10, 2012
  4. 03/19 apply: clear_image() clears things a bit moreJunio C Hamano, Jul 10, 2012
  5. 04/19 apply: refactor read_file_or_gitlink()Junio C Hamano, Jul 10, 2012
  6. 05/19 apply: factor out checkout_target() helper functionJunio C Hamano, Jul 10, 2012
  7. 06/19 apply: split load_preimage() helper function outJunio C Hamano, Jul 10, 2012
  8. 07/19 apply: refactor "previous patch" logicJunio C Hamano, Jul 10, 2012
  9. 08/19 apply: further split load_preimage()Junio C Hamano, Jul 10, 2012
  10. 09/19 apply: move check_to_create_blob() closer to its sole callerJunio C Hamano, Jul 10, 2012
  11. 10/19 apply: move "already exists" logic to check_to_create()Junio C Hamano, Jul 10, 2012
  12. 11/19 apply: accept -3/--3way command line optionJunio C Hamano, Jul 10, 2012
  13. 12/19 apply: fall back on three-way mergeJunio C Hamano, Jul 10, 2012
  14. 13/19 apply: plug the three-way merge logic inJunio C Hamano, Jul 10, 2012
  15. 14/19 apply: move verify_index_match() higherJunio C Hamano, Jul 10, 2012
  16. 15/19 apply: --3way with add/add conflictJunio C Hamano, Jul 10, 2012
  17. 16/19 apply: register conflicted stages to the indexJunio C Hamano, Jul 10, 2012
  18. 17/19 apply: allow rerere() to work on --3way resultsJunio C Hamano, Jul 10, 2012
  19. 18/19 apply: document --3way optionJunio C Hamano, Jul 10, 2012
  20. 19/19 apply: tests for the --3way optionJunio C Hamano, Jul 10, 2012

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.