void PkgInfoParcelable::WriteApplication(tizen_base::Parcel* parcel,
GList* application) const {
- std::vector<application_x*> app_vt;
+ std::vector<std::shared_ptr<application_x>> app_vt;
for (GList* tmp = application; tmp; tmp = tmp->next) {
application_x* ptr = reinterpret_cast<application_x*>(tmp->data);
- app_vt.push_back(ptr);
+ app_vt.emplace_back(ptr, [] (application_x*) -> void {});
}
AppInfoParcelable apps(0, std::move(app_vt), false);
WriteString(parcel, package->locale);
WriteString(parcel, package->res_type);
WriteString(parcel, package->res_version);
+ WriteString(parcel, package->is_disabled);
+ WriteString(parcel, package->light_user_switch_mode);
WriteIcon(parcel, package->icon);
WriteLabel(parcel, package->label);
WriteAuthor(parcel, package->author);
AppInfoParcelable apps;
parcel->ReadParcelable(&apps);
- std::vector<application_x*> vt = apps.ExtractAppInfo();
+ std::vector<std::shared_ptr<application_x>> vt = apps.ExtractAppInfo();
- for (application_x* application : vt)
- *list = g_list_append(*list, application);
+ for (auto& application : vt)
+ *list = g_list_append(*list, application.get());
}
void PkgInfoParcelable::ReadCompatibility(
ReadString(parcel, &package->locale);
ReadString(parcel, &package->res_type);
ReadString(parcel, &package->res_version);
+ ReadString(parcel, &package->is_disabled);
+ ReadString(parcel, &package->light_user_switch_mode);
ReadIcon(parcel, &package->icon);
ReadLabel(parcel, &package->label);
ReadAuthor(parcel, &package->author);
write_type_(PkgWriteType::None), auto_release_(true) {}
PkgInfoParcelable::PkgInfoParcelable(
- uid_t uid, std::vector<package_x*>&& pkg_list,
+ uid_t uid, std::vector<std::shared_ptr<package_x>>&& pkg_list,
PkgWriteType write_type, bool auto_release)
: AbstractParcelable(uid, ParcelableType::PkgInfo),
pkg_list_(std::move(pkg_list)), write_type_(write_type),
auto_release_(auto_release) {}
PkgInfoParcelable::PkgInfoParcelable(
- int ret, std::vector<package_x*>&& pkg_list, bool auto_release)
+ int ret, std::vector<std::shared_ptr<package_x>>&& pkg_list,
+ bool auto_release)
: AbstractParcelable(0, ParcelableType::PkgInfo, ret),
pkg_list_(std::move(pkg_list)), write_type_(PkgWriteType::None),
auto_release_(auto_release) {}
PkgInfoParcelable::~PkgInfoParcelable() {
- if (!auto_release_)
- return;
-
- for (auto pkg : pkg_list_)
- pkgmgrinfo_basic_free_package(pkg);
}
-const std::vector<package_x*>& PkgInfoParcelable::GetPkgInfo() {
+const std::vector<std::shared_ptr<package_x>>& PkgInfoParcelable::GetPkgInfo() {
return pkg_list_;
}
-std::vector<package_x*> PkgInfoParcelable::ExtractPkgInfo() {
+std::vector<std::shared_ptr<package_x>> PkgInfoParcelable::ExtractPkgInfo() {
return std::move(pkg_list_);
}
WriteInt(parcel, pkg_list_.size());
- for (auto pkg : pkg_list_)
- WritePackage(parcel, pkg);
+ for (auto& pkg : pkg_list_)
+ WritePackage(parcel, pkg.get());
}
void PkgInfoParcelable::ReadFromParcel(tizen_base::Parcel* parcel) {
ReadInt(parcel, &len);
for (int i = 0; i < len ; ++i)
- pkg_list_.emplace_back(ReadPackage(parcel));
+ pkg_list_.emplace_back(ReadPackage(parcel), [] (package_x*) -> void {});
}
} // namespace parcel