Module Name: src Committed By: thorpej Date: Sat Jun 6 22:28:07 UTC 2020
Modified Files: src/common/lib/libppath: ppath.c Log Message: Update for proplib(3) API changes. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/common/lib/libppath/ppath.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/lib/libppath/ppath.c diff -u src/common/lib/libppath/ppath.c:1.4 src/common/lib/libppath/ppath.c:1.5 --- src/common/lib/libppath/ppath.c:1.4 Sat Dec 29 20:08:23 2012 +++ src/common/lib/libppath/ppath.c Sat Jun 6 22:28:07 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: ppath.c,v 1.4 2012/12/29 20:08:23 christos Exp $ */ +/* $NetBSD: ppath.c,v 1.5 2020/06/06 22:28:07 thorpej Exp $ */ /*- * Copyright (c) 2011 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: ppath.c,v 1.4 2012/12/29 20:08:23 christos Exp $"); +__RCSID("$NetBSD: ppath.c,v 1.5 2020/06/06 22:28:07 thorpej Exp $"); #ifdef _KERNEL #include <sys/systm.h> @@ -412,7 +412,7 @@ int ppath_create_string(prop_object_t o, const ppath_t *p, const char *s) { return ppath_create_object_and_release(o, p, - prop_string_create_cstring(s)); + prop_string_create_copy(s)); } int @@ -420,21 +420,21 @@ ppath_create_data(prop_object_t o, const const void *data, size_t size) { return ppath_create_object_and_release(o, p, - prop_data_create_data(data, size)); + prop_data_create_copy(data, size)); } int ppath_create_uint64(prop_object_t o, const ppath_t *p, uint64_t u) { return ppath_create_object_and_release(o, p, - prop_number_create_unsigned_integer(u)); + prop_number_create_unsigned(u)); } int ppath_create_int64(prop_object_t o, const ppath_t *p, int64_t i) { return ppath_create_object_and_release(o, p, - prop_number_create_integer(i)); + prop_number_create_signed(i)); } int @@ -746,14 +746,14 @@ ppath_copyset_data(prop_object_t o, prop const void *data, size_t size) { return ppath_copyset_object_and_release(o, op, p, - prop_data_create_data(data, size)); + prop_data_create_copy(data, size)); } int ppath_set_data(prop_object_t o, const ppath_t *p, const void *data, size_t size) { return ppath_set_object_and_release(o, p, - prop_data_create_data(data, size)); + prop_data_create_copy(data, size)); } int @@ -767,7 +767,7 @@ ppath_get_data(prop_object_t o, const pp return rc; if (datap != NULL) - *datap = prop_data_data_nocopy(v); + *datap = prop_data_value(v); if (sizep != NULL) *sizep = prop_data_size(v); @@ -783,10 +783,16 @@ ppath_dup_data(prop_object_t o, const pp if ((rc = ppath_get_object_of_type(o, p, &v, PROP_TYPE_DATA)) != 0) return rc; - if (datap != NULL) - *datap = prop_data_data(v); + const size_t data_size = prop_data_size(v); + + if (datap != NULL) { + void *buf = ppath_alloc(data_size); + if (buf != NULL) + (void) prop_data_copy_value(v, buf, data_size); + *datap = buf; + } if (sizep != NULL) - *sizep = prop_data_size(v); + *sizep = data_size; return 0; } @@ -802,14 +808,14 @@ ppath_copyset_int64(prop_object_t o, pro int64_t i) { return ppath_copyset_object_and_release(o, op, p, - prop_number_create_integer(i)); + prop_number_create_signed(i)); } int ppath_set_int64(prop_object_t o, const ppath_t *p, int64_t i) { return ppath_set_object_and_release(o, p, - prop_number_create_integer(i)); + prop_number_create_signed(i)); } int @@ -825,7 +831,7 @@ ppath_get_int64(prop_object_t o, const p return EFTYPE; if (ip != NULL) - *ip = prop_number_integer_value(v); + *ip = prop_number_signed_value(v); return 0; } @@ -841,14 +847,14 @@ ppath_copyset_string(prop_object_t o, pr const char *s) { return ppath_copyset_object_and_release(o, op, p, - prop_string_create_cstring(s)); + prop_string_create_copy(s)); } int ppath_set_string(prop_object_t o, const ppath_t *p, const char *s) { return ppath_set_object_and_release(o, p, - prop_string_create_cstring(s)); + prop_string_create_copy(s)); } int @@ -861,7 +867,7 @@ ppath_get_string(prop_object_t o, const return rc; if (sp != NULL) - *sp = prop_string_cstring_nocopy(v); + *sp = prop_string_value(v); return 0; } @@ -875,8 +881,14 @@ ppath_dup_string(prop_object_t o, const if ((rc = ppath_get_object_of_type(o, p, &v, PROP_TYPE_STRING)) != 0) return rc; - if (sp != NULL) - *sp = prop_string_cstring(v); + const size_t string_size = prop_string_size(v); + + if (sp != NULL) { + char *cp = ppath_alloc(string_size + 1); + if (cp != NULL) + (void)prop_string_copy_value(v, cp, string_size + 1); + *sp = cp; + } return 0; } @@ -892,14 +904,14 @@ ppath_copyset_uint64(prop_object_t o, pr uint64_t u) { return ppath_copyset_object_and_release(o, op, p, - prop_number_create_unsigned_integer(u)); + prop_number_create_unsigned(u)); } int ppath_set_uint64(prop_object_t o, const ppath_t *p, uint64_t u) { return ppath_set_object_and_release(o, p, - prop_number_create_unsigned_integer(u)); + prop_number_create_unsigned(u)); } int @@ -915,7 +927,7 @@ ppath_get_uint64(prop_object_t o, const return EFTYPE; if (up != NULL) - *up = prop_number_unsigned_integer_value(v); + *up = prop_number_unsigned_value(v); return 0; }