diff options
Diffstat (limited to 'notification-ex/group_item.cc')
-rw-r--r-- | notification-ex/group_item.cc | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/notification-ex/group_item.cc b/notification-ex/group_item.cc index 451a018..f3fa086 100644 --- a/notification-ex/group_item.cc +++ b/notification-ex/group_item.cc @@ -73,8 +73,7 @@ Bundle GroupItem::Serialize() { Bundle serialized = i.get()->Serialize(); serialized.Add( GROUP_CHILDREN_TYPE_KEY, to_string((int)i.get()->GetType())); - char* str = strdup(reinterpret_cast<char*>(serialized.ToRaw().first.get())); - arr.push_back(str); + arr.push_back(reinterpret_cast<char*>(serialized.ToRaw().first.get())); } b.Add(GROUP_CHILDREN_KEY, arr); @@ -103,12 +102,12 @@ void GroupItem::Deserialize(Bundle b) { } } -shared_ptr<AbstractItem> GroupItem::FindByID(std::string id) { +AbstractItem& GroupItem::FindByID(std::string id) { for (auto& i : impl_->children_list_) { if (i.get()->GetId() == id) - return i; + return *i; } - return nullptr; + return ItemFactory::GetNullItem(); } void GroupItem::AddChild(shared_ptr<AbstractItem> child) { |