chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
sd-device: get_properties_{nulstr,strv} - don't recreate the buffer unnecessarily
[elogind.git]
/
src
/
libelogind
/
sd-device
/
device-private.c
diff --git
a/src/libelogind/sd-device/device-private.c
b/src/libelogind/sd-device/device-private.c
index f6beef84949bb6bbd406240e6670c81e308578b7..544b837b12f6c378c13dbabc86c70c5559dab4ce 100644
(file)
--- a/
src/libelogind/sd-device/device-private.c
+++ b/
src/libelogind/sd-device/device-private.c
@@
-641,6
+641,9
@@
static int device_update_properties_bufs(sd_device *device) {
assert(device);
assert(device);
+ if (!device->properties_buf_outdated)
+ return 0;
+
FOREACH_DEVICE_PROPERTY(device, prop, val) {
size_t len = 0;
FOREACH_DEVICE_PROPERTY(device, prop, val) {
size_t len = 0;
@@
-677,11
+680,9
@@
int device_get_properties_nulstr(sd_device *device, const uint8_t **nulstr, size
assert(nulstr);
assert(len);
assert(nulstr);
assert(len);
- if (device->properties_buf_outdated) {
- r = device_update_properties_bufs(device);
- if (r < 0)
- return r;
- }
+ r = device_update_properties_bufs(device);
+ if (r < 0)
+ return r;
*nulstr = device->properties_nulstr;
*len = device->properties_nulstr_len;
*nulstr = device->properties_nulstr;
*len = device->properties_nulstr_len;