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

[PATCH 3/6] ls-tree: fold "show_tree_data" into "cb" struct

From
Teng Long <dyroneteng@gmail.com>
Date
Jan 12, 2023, 09:11 UTC
Message-ID
<20230112091135.20050-4-tenglong.tl@alibaba-inc.com>
In-Reply-To
<20230112091135.20050-1-tenglong.tl@alibaba-inc.com>
From: Ævar Arnfjörð Bjarmason <avarab@gmail.com>

After the the preceding two commits the only user of the "show_tree_data" struct needed it along with the "options" member, let's instead fold all of that into a "show_tree_data" struct that we'll use only for that callback.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Teng Long <dyroneteng@gmail.com>
---
 builtin/ls-tree.c | 18 +++++-------------
 1 file changed, 5 insertions(+), 13 deletions(-)
diff --git a/builtin/ls-tree.c b/builtin/ls-tree.c
index 54f7b604cb7..da664eecfb9 100644
--- a/builtin/ls-tree.c
+++ b/builtin/ls-tree.c
@@ -53,6 +53,7 @@ struct ls_tree_options {
 };
 
 struct show_tree_data {
+	struct ls_tree_options *options;
 	unsigned mode;
 	enum object_type type;
 	const struct object_id *oid;
@@ -60,17 +61,11 @@ struct show_tree_data {
 	struct strbuf *base;
 };
 
-struct show_tree_data_cb {
-	struct ls_tree_options *options;
-	struct show_tree_data *data;
-};
-
 static size_t expand_show_tree(struct strbuf *sb, const char *start,
 			       void *context)
 {
-	struct show_tree_data_cb *wrapper = context;
-	struct ls_tree_options *options = wrapper->options;
-	struct show_tree_data *data = wrapper->data;
+	struct show_tree_data *data = context;
+	struct ls_tree_options *options = data->options;
 	const char *end;
 	const char *p;
 	unsigned int errlen;
@@ -153,17 +148,14 @@ static int show_tree_fmt(const struct object_id *oid, struct strbuf *base,
 	int recurse = 0;
 	struct strbuf sb = STRBUF_INIT;
 	enum object_type type = object_type(mode);
-	struct show_tree_data data = {
+	struct show_tree_data cb_data = {
+		.options = options,
 		.mode = mode,
 		.type = type,
 		.oid = oid,
 		.pathname = pathname,
 		.base = base,
 	};
-	struct show_tree_data_cb cb_data = {
-		.data = &data,
-		.options = options,
-	};
 
 	if (type == OBJ_TREE && show_recursive(options, base->buf, base->len, pathname))
 		recurse = READ_TREE_RECURSIVE;
-- 
2.39.0.98.g174eaa53973.dirty
Previous: Teng LongNext: Teng Long
Message 4 of 10 in “ls-tree.c: clean-up works”
  1. 0/6 ls-tree.c: clean-up worksTeng Long, Jan 12, 2023
  2. 1/6 ls-tree: don't use "show_tree_data" for "fast" callbacksTeng Long, Jan 12, 2023
  3. 2/6 ls-tree: use a "struct options"Teng Long, Jan 12, 2023
  4. 3/6 ls-tree: fold "show_tree_data" into "cb" structTeng Long, Jan 12, 2023
  5. 4/6 ls-tree: make "line_termination" less genericTeng Long, Jan 12, 2023
  6. 5/6 ls-tree: cleanup the redundant SPACETeng Long, Jan 12, 2023
  7. Ævar Arnfjörð BjarmasonJan 12, 2023
  8. 6/6 t3104: remove shift code in 'test_ls_tree_format'Teng Long, Jan 12, 2023
  9. Ævar Arnfjörð BjarmasonJan 12, 2023
  10. Ævar Arnfjörð BjarmasonJan 12, 2023

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.