hermet pushed a commit to branch master.

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

commit c10dfc3bcad18d8c53375cea6b3e496e9da84ad7
Author: JunsuChoi <jsuya.c...@samsung.com>
Date:   Thu May 9 19:30:37 2019 +0900

    ector_software_rasterizer : Move duplicate alloca
    
    Summary: Move the alloca() outside of the loop.
    
    Test Plan: N/A
    
    Reviewers: Hermet, kimcinoo
    
    Reviewed By: Hermet
    
    Subscribers: cedric, #reviewers, smohanty, #committers
    
    Tags: #efl
    
    Differential Revision: https://phab.enlightenment.org/D8869
---
 src/lib/ector/software/ector_software_rasterizer.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/lib/ector/software/ector_software_rasterizer.c 
b/src/lib/ector/software/ector_software_rasterizer.c
index 42a5e8ee89..428c067efe 100644
--- a/src/lib/ector/software/ector_software_rasterizer.c
+++ b/src/lib/ector/software/ector_software_rasterizer.c
@@ -145,9 +145,11 @@ _blend_mask_add(int count, const SW_FT_Span *spans, void 
*user_data)
    RGBA_Comp_Func_Solid comp_func = efl_draw_func_solid_span_get(sd->op, 
color);
    uint32_t *mbuffer = mask->pixels.u32;
 
+   int tsize = sd->raster_buffer->generic->w;
+   uint32_t *ttarget = alloca(sizeof(uint32_t) * tsize);
+
    while (count--)
      {
-        uint32_t *ttarget = alloca(sizeof(uint32_t) * spans->len);
         memset(ttarget, 0x00, sizeof(uint32_t) * spans->len);
         uint32_t *mtarget = mbuffer + ((mask->generic->w * spans->y) + 
spans->x);
         comp_func(ttarget, spans->len, color, spans->coverage);
@@ -234,9 +236,11 @@ _blend_mask_diff(int count, const SW_FT_Span *spans, void 
*user_data)
    RGBA_Comp_Func_Solid comp_func = efl_draw_func_solid_span_get(sd->op, 
color);
    uint32_t *mbuffer = mask->pixels.u32;
 
+   int tsize = sd->raster_buffer->generic->w;
+   uint32_t *ttarget = alloca(sizeof(uint32_t) * tsize);
+
    while (count--)
      {
-        uint32_t *ttarget = alloca(sizeof(uint32_t) * spans->len);
         memset(ttarget, 0x00, sizeof(uint32_t) * spans->len);
         uint32_t *mtarget = mbuffer + ((mask->generic->w * spans->y) + 
spans->x);
         comp_func(ttarget, spans->len, color, spans->coverage);

-- 


Reply via email to