- OnDemandJob::~OnDemandJob() deletes its JobTrigger objects.
- ActionState::__callDBusMethod() frees the GVariant parameter object.
Change-Id: I778199214222dfceb250226c2896155d36d451bf
Signed-off-by: Mu-Woong Lee <muwoong.lee@samsung.com>
_D("Call %s.%s", action->getInterface().c_str(), action->getMethodName().c_str());
+ GVariant* param = action->getParameters();
GVariant* result = caller.call(action->getBusName(), action->getObjectPath(),
- action->getInterface(), action->getMethodName(), action->getParameters());
+ action->getInterface(), action->getMethodName(), param);
+
+ if (param)
+ g_variant_unref(param);
if (!result) {
_E("DBus call failed");
const std::string& getObjectPath() const;
const std::string& getInterface() const;
const std::string& getMethodName() const;
- GVariant* getParameters();
+ GVariant* getParameters(); // This returns a non-floating GVariant.
void toJson(Json::Value& jsonNode) const;
OnDemandJobInfo::OnDemandJobInfo()
{
- for (auto& trig : __triggers) {
- delete trig;
- }
}
OnDemandJobInfo::OnDemandJobInfo(Json::Value& jsonRoot, const std::string& serializedStr) :
OnDemandJobInfo::~OnDemandJobInfo()
{
+ for (auto& trig : __triggers) {
+ delete trig;
+ }
}
std::list<JobTrigger*>& OnDemandJobInfo::getTriggers()