Change in libosmocore[master]: vty/talloc_ctx_vty.c: allocate walk_cb_params on stack, not heap

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Vadim Yanitskiy gerrit-no-reply at lists.osmocom.org
Sat Apr 6 12:18:33 UTC 2019


Vadim Yanitskiy has uploaded this change for review. ( https://gerrit.osmocom.org/13534


Change subject: vty/talloc_ctx_vty.c: allocate walk_cb_params on stack, not heap
......................................................................

vty/talloc_ctx_vty.c: allocate walk_cb_params on stack, not heap

There is no need to allocate struct 'walk_cb_params' dynamically.

Change-Id: I96f25f1ddb36b19b12055deaeeb6f58e59180e72
---
M src/vty/talloc_ctx_vty.c
1 file changed, 15 insertions(+), 43 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/34/13534/1

diff --git a/src/vty/talloc_ctx_vty.c b/src/vty/talloc_ctx_vty.c
index e7fe675..c4d5a88 100644
--- a/src/vty/talloc_ctx_vty.c
+++ b/src/vty/talloc_ctx_vty.c
@@ -180,22 +180,13 @@
 DEFUN(show_talloc_ctx, show_talloc_ctx_cmd,
 	BASE_CMD_STR, BASE_CMD_DESCR)
 {
-	struct walk_cb_params *params;
-
-	/* Allocate memory */
-	params = talloc_zero(tall_vty_ctx, struct walk_cb_params);
-	if (!params)
-		return CMD_WARNING;
+	struct walk_cb_params params = { 0 };
 
 	/* Set up callback parameters */
-	params->filter = WALK_FILTER_NONE;
-	params->vty = vty;
+	params.filter = WALK_FILTER_NONE;
+	params.vty = vty;
 
-	talloc_ctx_walk(argv[0], argv[1], params);
-
-	/* Free memory */
-	talloc_free(params);
-
+	talloc_ctx_walk(argv[0], argv[1], &params);
 	return CMD_SUCCESS;
 }
 
@@ -204,31 +195,22 @@
 	"Filter chunks using regular expression\n"
 	"Regular expression\n")
 {
-	struct walk_cb_params *params;
+	struct walk_cb_params params = { 0 };
 	int rc;
 
-	/* Allocate memory */
-	params = talloc_zero(tall_vty_ctx, struct walk_cb_params);
-	if (!params)
-		return CMD_WARNING;
-
 	/* Attempt to compile a regular expression */
-	rc = regcomp(&params->regexp, argv[2], 0);
+	rc = regcomp(&params.regexp, argv[2], 0);
 	if (rc) {
 		vty_out(vty, "Invalid expression%s", VTY_NEWLINE);
-		talloc_free(params);
 		return CMD_WARNING;
 	}
 
 	/* Set up callback parameters */
-	params->filter = WALK_FILTER_REGEXP;
-	params->vty = vty;
+	params.filter = WALK_FILTER_REGEXP;
+	params.vty = vty;
 
-	talloc_ctx_walk(argv[0], argv[1], params);
-
-	/* Free memory */
-	regfree(&params->regexp);
-	talloc_free(params);
+	talloc_ctx_walk(argv[0], argv[1], &params);
+	regfree(&params.regexp);
 
 	return CMD_SUCCESS;
 }
@@ -238,31 +220,21 @@
 	"Display only a specific memory chunk\n"
 	"Chunk address (e.g. 0xdeadbeef)\n")
 {
-	struct walk_cb_params *params;
+	struct walk_cb_params params = { 0 };
 	int rc;
 
-	/* Allocate memory */
-	params = talloc_zero(tall_vty_ctx, struct walk_cb_params);
-	if (!params)
-		return CMD_WARNING;
-
 	/* Attempt to parse an address */
-	rc = sscanf(argv[2], "%p", &params->chunk_ptr);
+	rc = sscanf(argv[2], "%p", &params.chunk_ptr);
 	if (rc != 1) {
 		vty_out(vty, "Invalid chunk address%s", VTY_NEWLINE);
-		talloc_free(params);
 		return CMD_WARNING;
 	}
 
 	/* Set up callback parameters */
-	params->filter = WALK_FILTER_TREE;
-	params->vty = vty;
+	params.filter = WALK_FILTER_TREE;
+	params.vty = vty;
 
-	talloc_ctx_walk(argv[0], argv[1], params);
-
-	/* Free memory */
-	talloc_free(params);
-
+	talloc_ctx_walk(argv[0], argv[1], &params);
 	return CMD_SUCCESS;
 }
 

-- 
To view, visit https://gerrit.osmocom.org/13534
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I96f25f1ddb36b19b12055deaeeb6f58e59180e72
Gerrit-Change-Number: 13534
Gerrit-PatchSet: 1
Gerrit-Owner: Vadim Yanitskiy <axilirator at gmail.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190406/d910f128/attachment.htm>


More information about the gerrit-log mailing list