Module Name:    src
Committed By:   pgoyette
Date:           Tue May 31 09:29:26 UTC 2016

Modified Files:
        src/common/include/prop: prop_array.h
        src/common/lib/libprop: prop_array_util.3 prop_array_util.c

Log Message:
Add prop_array_add_cstring{,_no_copy} utility functions as suggested in
PR lib/46723 using the patch provided.  (Header file updates are mine.)


To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/common/include/prop/prop_array.h
cvs rdiff -u -r1.7 -r1.8 src/common/lib/libprop/prop_array_util.3
cvs rdiff -u -r1.4 -r1.5 src/common/lib/libprop/prop_array_util.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/common/include/prop/prop_array.h
diff -u src/common/include/prop/prop_array.h:1.13 src/common/include/prop/prop_array.h:1.14
--- src/common/include/prop/prop_array.h:1.13	Fri Sep 30 22:08:18 2011
+++ src/common/include/prop/prop_array.h	Tue May 31 09:29:25 2016
@@ -1,4 +1,4 @@
-/*     $NetBSD: prop_array.h,v 1.13 2011/09/30 22:08:18 jym Exp $    */
+/*     $NetBSD: prop_array.h,v 1.14 2016/05/31 09:29:25 pgoyette Exp $    */
 
 /*-
  * Copyright (c) 2006, 2009 The NetBSD Foundation, Inc.
@@ -144,11 +144,13 @@ bool		prop_array_add_uint32(prop_array_t
 bool		prop_array_add_int64(prop_array_t, int64_t);
 bool		prop_array_add_uint64(prop_array_t, uint64_t);
 
+bool		prop_array_add_cstring(prop_array_t, const char *);
 bool		prop_array_get_cstring(prop_array_t, unsigned int,
 					     char **);
 bool		prop_array_set_cstring(prop_array_t, unsigned int,
 					    const char *);
 
+bool		prop_array_add_cstring_nocopy(prop_array_t, const char *);
 bool		prop_array_get_cstring_nocopy(prop_array_t,
                                                    unsigned int,
 						   const char **);

Index: src/common/lib/libprop/prop_array_util.3
diff -u src/common/lib/libprop/prop_array_util.3:1.7 src/common/lib/libprop/prop_array_util.3:1.8
--- src/common/lib/libprop/prop_array_util.3:1.7	Mon Oct 17 09:24:54 2011
+++ src/common/lib/libprop/prop_array_util.3	Tue May 31 09:29:25 2016
@@ -1,4 +1,4 @@
-.\"	$NetBSD: prop_array_util.3,v 1.7 2011/10/17 09:24:54 wiz Exp $
+.\"	$NetBSD: prop_array_util.3,v 1.8 2016/05/31 09:29:25 pgoyette Exp $
 .\"
 .\" Copyright (c) 2006 The NetBSD Foundation, Inc.
 .\" All rights reserved.
@@ -27,7 +27,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\" POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd March 12, 2011
+.Dd May 31, 2016
 .Dt PROP_ARRAY_UTIL 3
 .Os
 .Sh NAME
@@ -58,8 +58,10 @@
 .Nm prop_array_add_uint32 ,
 .Nm prop_array_add_int64 ,
 .Nm prop_array_add_uint64 ,
+.Nm prop_array_add_cstring ,
 .Nm prop_array_get_cstring ,
 .Nm prop_array_set_cstring ,
+.Nm prop_array_add_cstring_nocopy ,
 .Nm prop_array_get_cstring_nocopy ,
 .Nm prop_array_set_cstring_nocopy ,
 .Nm prop_array_add_and_rel
@@ -153,6 +155,8 @@
 .Fn prop_array_add_uint64 "prop_array_t dict" "uint64_t val"
 .\"
 .Ft bool
+.Fn prop_array_add_cstring "prop_array_t dict" "const char *cp"
+.Ft bool
 .Fn prop_array_get_cstring "prop_array_t dict" "unsigned int indx" \
     "char **strp"
 .Ft bool
@@ -160,6 +164,8 @@
     "const char *str"
 .\"
 .Ft bool
+.Fn prop_array_add_cstring_nocopy "prop_array_t dict" "const char *cp"
+.Ft bool
 .Fn prop_array_get_cstring_nocopy "prop_array_t dict" \
     "unsigned int indx" "const char **strp"
 .Ft bool
@@ -181,14 +187,17 @@ value type.
 The setters handle object creation and release for the caller.
 .Pp
 The
+.Fn prop_array_add_cstring
+and
 .Fn prop_array_get_cstring
-function returns dynamically allocated memory.
+functions returns dynamically allocated memory.
 See
 .Xr prop_string 3
 for more information.
 .Pp
 The
-.Fn prop_array_get_cstring_nocopy
+.Fn prop_array_add_cstring_nocopy,
+.Fn prop_array_get_cstring_nocopy,
 and
 .Fn prop_array_set_cstring_nocopy
 functions do not copy the string that is set or returned.

Index: src/common/lib/libprop/prop_array_util.c
diff -u src/common/lib/libprop/prop_array_util.c:1.4 src/common/lib/libprop/prop_array_util.c:1.5
--- src/common/lib/libprop/prop_array_util.c:1.4	Fri Jul 27 09:10:59 2012
+++ src/common/lib/libprop/prop_array_util.c	Tue May 31 09:29:25 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: prop_array_util.c,v 1.4 2012/07/27 09:10:59 pooka Exp $	*/
+/*	$NetBSD: prop_array_util.c,v 1.5 2016/05/31 09:29:25 pgoyette Exp $	*/
 
 /*-
  * Copyright (c) 2006 The NetBSD Foundation, Inc.
@@ -201,6 +201,21 @@ TEMPLATE(64)
 #undef TEMPLATE
 
 #define	TEMPLATE(variant, qualifier)					\
+bool									\
+prop_array_add_cstring ## variant (prop_array_t array,			\
+					const char *cp)			\
+{									\
+	prop_string_t str;						\
+	bool rv;							\
+									\
+	str = prop_string_create_cstring ## variant (cp);		\
+	if (str == NULL)						\
+		return false;						\
+	rv = prop_array_add(array, str);				\
+	prop_object_release(str);					\
+	return rv;							\
+}									\
+									\
 bool								        \
 prop_array_get_cstring ## variant (prop_array_t array,		        \
 					unsigned int indx,		\

Reply via email to