svn commit: r214129 - head/lib/libgeom

Pawel Jakub Dawidek pjd at FreeBSD.org
Thu Oct 21 10:38:14 UTC 2010


Author: pjd
Date: Thu Oct 21 10:38:14 2010
New Revision: 214129
URL: http://svn.freebsd.org/changeset/base/214129

Log:
  Remove code duplication by introducing static gctl_param_add() function which
  is now used by both gctl_ro_param() and gctl_rw_param().

Modified:
  head/lib/libgeom/geom_ctl.c

Modified: head/lib/libgeom/geom_ctl.c
==============================================================================
--- head/lib/libgeom/geom_ctl.c	Thu Oct 21 10:36:36 2010	(r214128)
+++ head/lib/libgeom/geom_ctl.c	Thu Oct 21 10:38:14 2010	(r214129)
@@ -150,8 +150,9 @@ gctl_new_arg(struct gctl_req *req)
 	return (ap);
 }
 
-void
-gctl_ro_param(struct gctl_req *req, const char *name, int len, const void* value)
+static void
+gctl_param_add(struct gctl_req *req, const char *name, int len, void *value,
+    int flag)
 {
 	struct gctl_req_arg *ap;
 
@@ -165,8 +166,8 @@ gctl_ro_param(struct gctl_req *req, cons
 	if (ap->name == NULL)
 		return;
 	ap->nlen = strlen(ap->name) + 1;
-	ap->value = __DECONST(void *, value);
-	ap->flag = GCTL_PARAM_RD;
+	ap->value = value;
+	ap->flag = flag;
 	if (len >= 0)
 		ap->len = len;
 	else if (len < 0) {
@@ -176,26 +177,17 @@ gctl_ro_param(struct gctl_req *req, cons
 }
 
 void
-gctl_rw_param(struct gctl_req *req, const char *name, int len, void* value)
+gctl_ro_param(struct gctl_req *req, const char *name, int len, const void* value)
 {
-	struct gctl_req_arg *ap;
 
-	if (req == NULL || req->error != NULL)
-		return;
-	ap = gctl_new_arg(req);
-	if (ap == NULL)
-		return;
-	ap->name = strdup(name);
-	gctl_check_alloc(req, ap->name);
-	if (ap->name == NULL)
-		return;
-	ap->nlen = strlen(ap->name) + 1;
-	ap->value = value;
-	ap->flag = GCTL_PARAM_RW;
-	if (len >= 0)
-		ap->len = len;
-	else if (len < 0)
-		ap->len = strlen(value) + 1;	
+	gctl_param_add(req, name, len, __DECONST(void *, value), GCTL_PARAM_RD);
+}
+
+void
+gctl_rw_param(struct gctl_req *req, const char *name, int len, void *value)
+{
+
+	gctl_param_add(req, name, len, value, GCTL_PARAM_RW);
 }
 
 const char *


More information about the svn-src-head mailing list