On Mon, 6 Feb 2012 22:20:04 +0100 "hannes.janet...@gmail.com"
<hannes.janet...@googlemail.com> said:

i'm seeing some bizarre numbers like:

Program received signal SIGINT, Interrupt.
rect_list_add_split_fuzzy (tb=0x8092fc8, x=<value optimized out>, y=399, 
    w=<value optimized out>, h=<value optimized out>) at evas_tiler.c:666
666                  else if ((intra.width == current.width) &&
(gdb) p intra
$18 = {left = 1, top = 0, right = -5992, bottom = -16385, width = -343, 
  height = 1, area = 4040884}
(gdb) p accepted_error
$21 = 1024
(gdb) p current
$22 = {left = 0, top = 405, right = 155, bottom = 477, width = 155, 
  height = 72, area = 11160}
(gdb) p r
$23 = {left = 498, top = 402, right = 503, bottom = 406, width = 5, 
  height = 4, area = 20}

look at outer... then look at _calc_intra_outer_rect_area() that's meant to
fill it in.. how on earth is it getting those large negative values?

> Hi,
> if anyone is in the mood to dig into evas_tiler, my little test app
> makes evas get stuck in a loop there. it's reliable reproduceable but
> it takes sometimes a bit until it hits this case. input is automated
> for testing, but moving the mouse and zooming with scroll-wheel makes
> it hang faster here.
> 
> the code
> http://pastebin.com/KGUFm2Kn
> 
> 
> Regards,
> Hannes
> 
> ----
> no split no merge 19508
> 647             while (cur_node)
> (gdb)
> 652                  current = ((rect_node_t *)cur_node)->rect;
> (gdb)
> 654                  _calc_intra_outer_rect_area(r, current, &intra, &outer);
> (gdb)
> 655                  area = current.area + r.area - intra.area;
> (gdb)
> 657                  if ((intra.width == r.width) && (intra.height ==
> r.height)) (gdb)
> 668                  else if ((intra.width == current.width) &&
> (gdb)
> 669                           (intra.height == current.height))
> (gdb)
> 668                  else if ((intra.width == current.width) &&
> (gdb)
> 682                  else if ((outer.area - area) <= accepted_error)
> (gdb)
> 704                  else if (intra.area <= accepted_error)
> (gdb)
> 713                       prev_cur_node = cur_node;
> (gdb)
> 714                       cur_node = cur_node->next;
> (gdb)
> 716                       if (_splits++ > 1000)
> (gdb)
> 717                         printf("no split no merge %d\n", _splits);
> (gdb)
> no split no merge 19509
> 647             while (cur_node)
> (gdb)
> 652                  current = ((rect_node_t *)cur_node)->rect;
> (gdb)
> 654                  _calc_intra_outer_rect_area(r, current, &intra, &outer);
> (gdb)
> ....
> 
> ------------------------------------------------------------------------------
> Try before you buy = See our experts in action!
> The most comprehensive online learning library for Microsoft developers
> is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
> Metro Style Apps, more. Free future releases when you subscribe now!
> http://p.sf.net/sfu/learndevnow-dev2
> _______________________________________________
> enlightenment-devel mailing list
> enlightenment-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> 


-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    ras...@rasterman.com


------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to