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, \