Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: src/FilterEngine.cpp

Issue 5598762307158016: Issue 1550 - Get rid of V8ValueHolder.h (Closed)
Patch Set: fix outdated comment Created Jan. 22, 2016, 2:34 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/FilterEngine.cpp
diff --git a/src/FilterEngine.cpp b/src/FilterEngine.cpp
index ed9a070d5ab18c7c297c117847e48799be005d04..eb515e2789ed61ec03d7aff687c1a8a3be3a6942 100644
--- a/src/FilterEngine.cpp
+++ b/src/FilterEngine.cpp
@@ -28,8 +28,8 @@ using namespace AdblockPlus;
extern std::string jsSources[];
-Filter::Filter(JsValuePtr value)
- : JsValue(value)
+Filter::Filter(JsValue&& value)
+ : JsValue(std::move(value))
{
if (!IsObject())
throw std::runtime_error("JavaScript value is not an object");
@@ -81,8 +81,8 @@ bool Filter::operator==(const Filter& filter) const
return GetProperty("text")->AsString() == filter.GetProperty("text")->AsString();
}
-Subscription::Subscription(JsValuePtr value)
- : JsValue(value)
+Subscription::Subscription(JsValue&& value)
+ : JsValue(std::move(value))
{
if (!IsObject())
throw std::runtime_error("JavaScript value is not an object");
@@ -227,7 +227,7 @@ FilterPtr FilterEngine::GetFilter(const std::string& text)
JsValuePtr func = jsEngine->Evaluate("API.getFilterFromText");
JsValueList params;
params.push_back(jsEngine->NewValue(text));
- return FilterPtr(new Filter(func->Call(params)));
+ return FilterPtr(new Filter(std::move(*func->Call(params))));
Eric 2016/01/26 18:37:40 Why is 'move' necessary here? The value is already
sergei 2016/01/27 10:21:14 Compiler generates an error here because it's not
sergei 2016/01/27 11:23:02 FYI: https://codereview.adblockplus.org/29334678/
Eric 2016/02/08 19:50:06 That change set belongs here. You're adding a bunc
Eric 2016/02/08 19:50:06 OK.
}
SubscriptionPtr FilterEngine::GetSubscription(const std::string& url)
@@ -235,7 +235,7 @@ SubscriptionPtr FilterEngine::GetSubscription(const std::string& url)
JsValuePtr func = jsEngine->Evaluate("API.getSubscriptionFromUrl");
JsValueList params;
params.push_back(jsEngine->NewValue(url));
- return SubscriptionPtr(new Subscription(func->Call(params)));
+ return SubscriptionPtr(new Subscription(std::move(*func->Call(params))));
}
std::vector<FilterPtr> FilterEngine::GetListedFilters() const
@@ -244,7 +244,7 @@ std::vector<FilterPtr> FilterEngine::GetListedFilters() const
JsValueList values = func->Call()->AsList();
std::vector<FilterPtr> result;
for (JsValueList::iterator it = values.begin(); it != values.end(); it++)
- result.push_back(FilterPtr(new Filter(*it)));
+ result.push_back(FilterPtr(new Filter(std::move(**it))));
return result;
}
@@ -254,7 +254,7 @@ std::vector<SubscriptionPtr> FilterEngine::GetListedSubscriptions() const
JsValueList values = func->Call()->AsList();
std::vector<SubscriptionPtr> result;
for (JsValueList::iterator it = values.begin(); it != values.end(); it++)
- result.push_back(SubscriptionPtr(new Subscription(*it)));
+ result.push_back(SubscriptionPtr(new Subscription(std::move(**it))));
return result;
}
@@ -264,7 +264,7 @@ std::vector<SubscriptionPtr> FilterEngine::FetchAvailableSubscriptions() const
JsValueList values = func->Call()->AsList();
std::vector<SubscriptionPtr> result;
for (JsValueList::iterator it = values.begin(); it != values.end(); it++)
- result.push_back(SubscriptionPtr(new Subscription(*it)));
+ result.push_back(SubscriptionPtr(new Subscription(std::move(**it))));
return result;
}
@@ -348,7 +348,7 @@ AdblockPlus::FilterPtr FilterEngine::CheckFilterMatch(const std::string& url,
params.push_back(jsEngine->NewValue(documentUrl));
JsValuePtr result = func->Call(params);
if (!result->IsNull())
- return FilterPtr(new Filter(result));
+ return FilterPtr(new Filter(std::move(*result)));
else
return FilterPtr();
}
@@ -462,7 +462,7 @@ void FilterEngine::ShowNotification(const ShowNotificationCallback& callback,
{
return;
}
- callback(NotificationPtr(new Notification(params[0])));
+ callback(NotificationPtr(new Notification(std::move(*params[0]))));
}
« no previous file with comments | « include/AdblockPlus/V8ValueHolder.h ('k') | src/JsContext.cpp » ('j') | src/JsValue.cpp » ('J')

Powered by Google App Engine
This is Rietveld