diff --git a/interfaces/kits/napi/aafwk/featureAbility/napi_data_ability_helper.cpp b/interfaces/kits/napi/aafwk/featureAbility/napi_data_ability_helper.cpp index dd9bbfdf275e8dff81d6e94b7c7d45827f9a52e6..5adba9890cbd52fb1d8e3bfdcdb6b06a438f21c2 100644 --- a/interfaces/kits/napi/aafwk/featureAbility/napi_data_ability_helper.cpp +++ b/interfaces/kits/napi/aafwk/featureAbility/napi_data_ability_helper.cpp @@ -2784,18 +2784,12 @@ void QueryAsyncCompleteCB(napi_env env, napi_status status, void *data) napi_value WrapResultSet(napi_env env, const std::shared_ptr &resultSet) { HILOG_INFO("%{public}s,called", __func__); - MessageParcel tempparcel; if (resultSet == nullptr) { HILOG_ERROR("%{public}s, input parameter resultSet is nullptr", __func__); return nullptr; } - if (!resultSet->Marshalling(tempparcel)) { - HILOG_ERROR("%{public}s, tempparcel.WriteParcelable(resultSet) retval false", __func__); - return nullptr; - } - - return RdbJsKit::ResultSetProxy::NewInstance(env, std::make_unique(tempparcel)); + return RdbJsKit::ResultSetProxy::NewInstance(env, resultSet); } napi_value NAPI_Release(napi_env env, napi_callback_info info) diff --git a/services/abilitymgr/src/ability_scheduler_proxy.cpp b/services/abilitymgr/src/ability_scheduler_proxy.cpp index eae1404a38d83be077045ed804d2b7daf033cdc5..aa0657a53cebd8b19c28330998bf87f3ecd0f8d4 100644 --- a/services/abilitymgr/src/ability_scheduler_proxy.cpp +++ b/services/abilitymgr/src/ability_scheduler_proxy.cpp @@ -19,6 +19,7 @@ #include "hilog_wrapper.h" #include "ipc_types.h" +#include "ishared_result_set.h" #include "pac_map.h" #include "want.h" #include "data_ability_observer_interface.h" @@ -500,13 +501,8 @@ std::shared_ptr AbilitySchedulerProxy::Query( return nullptr; } - std::shared_ptr retval(NativeRdb::AbsSharedResultSet::Unmarshalling(reply)); - if (retval == nullptr) { - HILOG_ERROR("AbilitySchedulerProxy::Query retval == nullptr error"); - return nullptr; - } HILOG_INFO("AbilitySchedulerProxy::Query end"); - return retval; + return OHOS::NativeRdb::ISharedResultSet::ReadFromParcel(reply); } /** diff --git a/services/abilitymgr/src/ability_scheduler_stub.cpp b/services/abilitymgr/src/ability_scheduler_stub.cpp index 8af79be740203a6d3ee76fd485d2c71fb39896f5..0f1d0313748d520c4ee286d786ac38febdcd52b3 100644 --- a/services/abilitymgr/src/ability_scheduler_stub.cpp +++ b/services/abilitymgr/src/ability_scheduler_stub.cpp @@ -20,6 +20,7 @@ #include "hilog_wrapper.h" #include "ipc_types.h" +#include "ishared_result_set.h" #include "pac_map.h" #include "want.h" #include "data_ability_observer_interface.h" @@ -314,14 +315,14 @@ int AbilitySchedulerStub::QueryInner(MessageParcel &data, MessageParcel &reply) HILOG_ERROR("ReadParcelable predicates is nullptr"); return ERR_INVALID_VALUE; } - std::shared_ptr resultSet = Query(*uri, columns, *predicates); + auto resultSet = Query(*uri, columns, *predicates); if (resultSet == nullptr) { HILOG_ERROR("fail to WriteParcelable resultSet"); return ERR_INVALID_VALUE; } - if (!resultSet->Marshalling(reply)){ + auto result = NativeRdb::ISharedResultSet::WriteToParcel(std::move(resultSet), reply); + if (result == nullptr){ HILOG_ERROR("!resultSet->Marshalling(reply)"); - return ERR_INVALID_VALUE; } HILOG_INFO("AbilitySchedulerStub::QueryInner end"); return NO_ERROR;