kimcinoo pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=25dba9ebcf7b5a1329d6d716b0fb783883e4a6d6

commit 25dba9ebcf7b5a1329d6d716b0fb783883e4a6d6
Author: Shinwoo Kim <cinoo....@samsung.com>
Date:   Mon Dec 7 16:52:54 2020 +0900

    png: handle 9-patch ends with stretch
    
    Summary:
    The strech region has paired information; total and strechable.
    Refer to function _strech_region_load retrieving strech region info.
    
    But if 9-patch information line ends with strechable,
    png did not push the strechable information.
    And it leads to devide by zero.
    
    This patch is adding strechable info to the strech region,
    if 9-patch information ends with strechable.
    
    Test Plan:
    [Code]
    {F4219278}
    {F4219280}
    
    [Test]
    ECORE_EVAS_ENGINE=opengl_x11 ./evas-image-9patch ./end_with_strech.9.png
    
    Reviewers: Hermet, jsuya, herb, cedric
    
    Reviewed By: Hermet
    
    Subscribers: #reviewers, #committers
    
    Tags: #efl
    
    Differential Revision: https://phab.enlightenment.org/D12204
---
 src/modules/evas/image_loaders/png/evas_image_load_png.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/modules/evas/image_loaders/png/evas_image_load_png.c 
b/src/modules/evas/image_loaders/png/evas_image_load_png.c
index ce55916b0e..9e5073cc5b 100644
--- a/src/modules/evas/image_loaders/png/evas_image_load_png.c
+++ b/src/modules/evas/image_loaders/png/evas_image_load_png.c
@@ -473,6 +473,13 @@ evas_image_load_file_head_with_data_png(void *loader_data,
              
evas_loader_helper_stretch_region_push(&prop->stretch.horizontal.region,
                                                     &current, stretchable);
           }
+        // End with strechable, add length info
+        if (stretchable)
+          {
+             
evas_loader_helper_stretch_region_push(&prop->stretch.horizontal.region,
+                                                    &current, stretchable);
+             stretchable = !stretchable;
+          }
 
         current = 0;
 
@@ -513,6 +520,13 @@ evas_image_load_file_head_with_data_png(void *loader_data,
              
evas_loader_helper_stretch_region_push(&prop->stretch.vertical.region,
                                                     &current, stretchable);
           }
+        // End with strechable, add length info
+        if (stretchable)
+          {
+             
evas_loader_helper_stretch_region_push(&prop->stretch.vertical.region,
+                                                    &current, stretchable);
+             stretchable = !stretchable;
+          }
 
         // Content zone is optional, if not provided, we should use the one we 
guessed
         if (prop->content.x == 0 || prop->content.y == 0)

-- 


Reply via email to