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;