aboutsummaryrefslogtreecommitdiff
path: root/libs/kdbinder/kdbus/iterable.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/kdbinder/kdbus/iterable.cpp')
-rw-r--r--libs/kdbinder/kdbus/iterable.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/libs/kdbinder/kdbus/iterable.cpp b/libs/kdbinder/kdbus/iterable.cpp
index d45221a..b7093ec 100644
--- a/libs/kdbinder/kdbus/iterable.cpp
+++ b/libs/kdbinder/kdbus/iterable.cpp
@@ -19,9 +19,15 @@
namespace android {
namespace kdbus {
-void for_each_name_info(struct kdbus_name_list *list,
- std::function<void(struct kdbus_name_info *)> f) {
- for_each(list->names, list, f);
+void for_each_info(struct kdbus_info *list, uint64_t size,
+ std::function<void(struct kdbus_info *)> f) {
+ struct kdbus_info *info = list;
+ while (reinterpret_cast<uint8_t *>(info)
+ < reinterpret_cast<uint8_t *>(list) + size) {
+ f(info);
+ info = reinterpret_cast<struct kdbus_info *>(
+ reinterpret_cast<uint8_t *>(info) + kAlignTo8Bit(info->size));
+ }
}
} // namespace kdbus