You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by mo...@apache.org on 2019/12/03 03:07:11 UTC
[incubator-weex] branch master updated: Optimize for custom render
target.
This is an automated email from the ASF dual-hosted git repository.
moshen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-weex.git
The following commit(s) were added to refs/heads/master by this push:
new 152c0a1 Optimize for custom render target.
new d05ecc0 Merge pull request #3049 from wqyfavor/optimize-heron
152c0a1 is described below
commit 152c0a1f015a801cf39169b834a01186dda2b67d
Author: qianyuan.wqy <qi...@taobao.com>
AuthorDate: Mon Dec 2 20:26:19 2019 +0800
Optimize for custom render target.
---
.../Source/core/render/page/render_page_custom.cpp | 31 ++++++++--------------
.../Source/core/render/target/render_target.h | 16 +++++------
2 files changed, 19 insertions(+), 28 deletions(-)
diff --git a/weex_core/Source/core/render/page/render_page_custom.cpp b/weex_core/Source/core/render/page/render_page_custom.cpp
index 2317511..3d464ff 100644
--- a/weex_core/Source/core/render/page/render_page_custom.cpp
+++ b/weex_core/Source/core/render/page/render_page_custom.cpp
@@ -21,11 +21,6 @@
#include "render_page_custom.h"
namespace WeexCore {
-
- template<typename T>
- static std::shared_ptr<T> SharedMove(T& source) {
- return std::make_shared<T>(std::move(source));
- }
RenderPageCustom::RenderPageCustom(const std::string& page_id, const std::string& page_type, const PageOptions& options): RenderPageBase(page_id, page_type) {
valid_ = true;
@@ -37,7 +32,7 @@ namespace WeexCore {
targetOptions.is_round_off = options.is_round_off;
targetOptions.viewport_width = options.viewport_width;
targetOptions.device_width = options.device_width;
- target_->createPage(page_id, targetOptions);;
+ target_->createPage(page_id, targetOptions);
}
}
@@ -46,10 +41,8 @@ namespace WeexCore {
std::map<std::string, std::string>* attrs,
std::set<std::string>* events) {
if (target_) {
- auto managedStyles = SharedMove(*styles);
- auto managedAttrs = SharedMove(*attrs);
- auto managedEvents = SharedMove(*events);
- target_->createBody(page_id_, ref, type, managedStyles, managedAttrs, managedEvents);
+ target_->createBody(page_id_, ref, type, styles, attrs, events);
+ return true;
}
delete styles;
delete attrs;
@@ -63,10 +56,8 @@ namespace WeexCore {
std::map<std::string, std::string>* attrs,
std::set<std::string>* events) {
if (target_) {
- auto managedStyles = SharedMove(*styles);
- auto managedAttrs = SharedMove(*attrs);
- auto managedEvents = SharedMove(*events);
- target_->addElement(page_id_, ref, type, parent_ref, index, managedStyles, managedAttrs, managedEvents);
+ target_->addElement(page_id_, ref, type, parent_ref, index, styles, attrs, events);
+ return true;
}
delete styles;
delete attrs;
@@ -90,11 +81,11 @@ namespace WeexCore {
bool RenderPageCustom::UpdateStyle(const std::string &ref, std::vector<std::pair<std::string, std::string>> *styles) {
if (target_) {
- std::shared_ptr<std::map<std::string, std::string>> managedStyles = std::make_shared<std::map<std::string, std::string>>();
+ std::map<std::string, std::string>* stylesMap = new std::map<std::string, std::string>();
for (auto& p : *styles) {
- (*managedStyles)[std::move(p.first)] = std::move(p.second);
+ (*stylesMap)[std::move(p.first)] = std::move(p.second);
}
- target_->updateStyles(page_id_, ref, managedStyles);
+ target_->updateStyles(page_id_, ref, stylesMap);
}
delete styles;
return true;
@@ -102,11 +93,11 @@ namespace WeexCore {
bool RenderPageCustom::UpdateAttr(const std::string &ref, std::vector<std::pair<std::string, std::string>> *attrs) {
if (target_) {
- std::shared_ptr<std::map<std::string, std::string>> managedAttrs = std::make_shared<std::map<std::string, std::string>>();
+ std::map<std::string, std::string>* attrsMap = new std::map<std::string, std::string>();
for (auto& p : *attrs) {
- (*managedAttrs)[std::move(p.first)] = std::move(p.second);
+ (*attrsMap)[std::move(p.first)] = std::move(p.second);
}
- target_->updateAttributes(page_id_, ref, managedAttrs);
+ target_->updateAttributes(page_id_, ref, attrsMap);
}
delete attrs;
return true;
diff --git a/weex_core/Source/core/render/target/render_target.h b/weex_core/Source/core/render/target/render_target.h
index 81f7fc4..6b89455 100644
--- a/weex_core/Source/core/render/target/render_target.h
+++ b/weex_core/Source/core/render/target/render_target.h
@@ -56,23 +56,23 @@ namespace WeexCore {
virtual void deletePage(const std::string& page) = 0;
virtual void createBody(const std::string& page, const std::string& ref, const std::string& type,
- std::shared_ptr<std::map<std::string, std::string>> styles,
- std::shared_ptr<std::map<std::string, std::string>> attrs,
- std::shared_ptr<std::set<std::string>> events) = 0;
+ std::map<std::string, std::string>* styles,
+ std::map<std::string, std::string>* attrs,
+ std::set<std::string>* events) = 0;
virtual void addElement(const std::string& page, const std::string& ref, const std::string& type,
const std::string &parent_ref, int index,
- std::shared_ptr<std::map<std::string, std::string>> styles,
- std::shared_ptr<std::map<std::string, std::string>> attrs,
- std::shared_ptr<std::set<std::string>> events) = 0;
+ std::map<std::string, std::string>* styles,
+ std::map<std::string, std::string>* attrs,
+ std::set<std::string>* events) = 0;
virtual void removeElement(const std::string& page, const std::string &ref) = 0;
virtual void moveElement(const std::string& page, const std::string &ref, const std::string &parent_ref, int index) = 0;
- virtual void updateStyles(const std::string& page, const std::string &ref, std::shared_ptr<std::map<std::string, std::string>> styles) = 0;
+ virtual void updateStyles(const std::string& page, const std::string &ref, std::map<std::string, std::string>* styles) = 0;
- virtual void updateAttributes(const std::string& page, const std::string &ref, std::shared_ptr<std::map<std::string, std::string>> attrs) = 0;
+ virtual void updateAttributes(const std::string& page, const std::string &ref, std::map<std::string, std::string>* attrs) = 0;
virtual void addEvent(const std::string& page, const std::string &ref, const std::string &event) = 0;