Enlightenment CVS committal
Author : raster
Project : e17
Module : libs/evas
Dir : e17/libs/evas/src/lib/canvas
Modified Files:
evas_object_textblock.c
Log Message:
avoid infinite loop more aggressively?
and some more optimising...
===================================================================
RCS file:
/cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_textblock.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -3 -r1.18 -r1.19
--- evas_object_textblock.c 1 Feb 2005 08:23:53 -0000 1.18
+++ evas_object_textblock.c 1 Feb 2005 13:53:40 -0000 1.19
@@ -518,7 +518,7 @@
/* FIXME: if we overflow then this would be punted to an overflow */
/* object instead */
- if (layout.line.y >= h) return;
+ if (layout.line.y >= h) goto breakout;
node = (Node *)l;
// printf("NODE: FMT:\"%s\" TXT:\"%s\"\n", node->format, node->text);
if (node->format)
@@ -547,6 +547,11 @@
text = strdup(node->text);
new_node:
+ if (layout.line.y >= h)
+ {
+ free(text);
+ goto breakout;
+ }
lnode = calloc(1, sizeof(Layout_Node));
evas_object_textblock_layout_copy(&layout, &(lnode->layout));
if (lnode->layout.font.name)
@@ -665,14 +670,18 @@
{
/* FIXME: this node would overflow to the next
textblock */
}
- layout.line.y += lnode->layout.line.mascent +
lnode->layout.line.mdescent;
+ layout.line.y += layout.line.mascent +
layout.line.mdescent;
text = text2;
/* still more text to go */
- goto new_node;
+ if ((layout.line.mascent + layout.line.mdescent) > 0)
+ goto new_node;
+ else
+ free(text);
}
}
}
}
+ breakout:
evas_object_textblock_layout_clear(obj, &layout);
}
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs