[Swfdec-commits] 2 commits - swfdec/swfdec_text_format.c test/trace

Benjamin Otte company at kemper.freedesktop.org
Tue Apr 29 13:15:06 PDT 2008


 swfdec/swfdec_text_format.c                |    6 ++++--
 test/trace/Makefile.am                     |    9 +++++++++
 test/trace/crash-0.7.1-getTextExtent-5.swf |binary
 test/trace/crash-0.7.1-getTextExtent-6.swf |binary
 test/trace/crash-0.7.1-getTextExtent-7.swf |binary
 test/trace/crash-0.7.1-getTextExtent-8.swf |binary
 test/trace/crash-0.7.1-getTextExtent.as    |    9 +++++++++
 7 files changed, 22 insertions(+), 2 deletions(-)

New commits:
commit 9566d9f4e157525ed8b32ea13c592b244ac8bc0a
Author: Benjamin Otte <otte at gnome.org>
Date:   Tue Apr 29 22:14:52 2008 +0200

    add test for recent fix

diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am
index 023b817..e31d0fa 100644
--- a/test/trace/Makefile.am
+++ b/test/trace/Makefile.am
@@ -779,6 +779,15 @@ EXTRA_DIST = \
 	crash-0.6.6-xmlsocket-8.swf \
 	crash-0.6.6-xmlsocket-8.swf.trace \
 	crash-0.6.6-xmlsocket.as \
+	crash-0.7.1-getTextExtent-5.swf \
+	crash-0.7.1-getTextExtent-5.swf.trace \
+	crash-0.7.1-getTextExtent-6.swf \
+	crash-0.7.1-getTextExtent-6.swf.trace \
+	crash-0.7.1-getTextExtent-7.swf \
+	crash-0.7.1-getTextExtent-7.swf.trace \
+	crash-0.7.1-getTextExtent-8.swf \
+	crash-0.7.1-getTextExtent-8.swf.trace \
+	crash-0.7.1-getTextExtent.as \
 	currentframe.swf \
 	currentframe.swf.trace \
 	dangling-compare.as \
diff --git a/test/trace/crash-0.7.1-getTextExtent-5.swf b/test/trace/crash-0.7.1-getTextExtent-5.swf
new file mode 100644
index 0000000..c5135ed
Binary files /dev/null and b/test/trace/crash-0.7.1-getTextExtent-5.swf differ
diff --git a/test/trace/crash-0.7.1-getTextExtent-5.swf.trace b/test/trace/crash-0.7.1-getTextExtent-5.swf.trace
new file mode 100644
index 0000000..e69de29
diff --git a/test/trace/crash-0.7.1-getTextExtent-6.swf b/test/trace/crash-0.7.1-getTextExtent-6.swf
new file mode 100644
index 0000000..2def982
Binary files /dev/null and b/test/trace/crash-0.7.1-getTextExtent-6.swf differ
diff --git a/test/trace/crash-0.7.1-getTextExtent-6.swf.trace b/test/trace/crash-0.7.1-getTextExtent-6.swf.trace
new file mode 100644
index 0000000..e69de29
diff --git a/test/trace/crash-0.7.1-getTextExtent-7.swf b/test/trace/crash-0.7.1-getTextExtent-7.swf
new file mode 100644
index 0000000..6247cab
Binary files /dev/null and b/test/trace/crash-0.7.1-getTextExtent-7.swf differ
diff --git a/test/trace/crash-0.7.1-getTextExtent-7.swf.trace b/test/trace/crash-0.7.1-getTextExtent-7.swf.trace
new file mode 100644
index 0000000..e69de29
diff --git a/test/trace/crash-0.7.1-getTextExtent-8.swf b/test/trace/crash-0.7.1-getTextExtent-8.swf
new file mode 100644
index 0000000..0fe80c2
Binary files /dev/null and b/test/trace/crash-0.7.1-getTextExtent-8.swf differ
diff --git a/test/trace/crash-0.7.1-getTextExtent-8.swf.trace b/test/trace/crash-0.7.1-getTextExtent-8.swf.trace
new file mode 100644
index 0000000..e69de29
diff --git a/test/trace/crash-0.7.1-getTextExtent.as b/test/trace/crash-0.7.1-getTextExtent.as
new file mode 100644
index 0000000..0831bbb
--- /dev/null
+++ b/test/trace/crash-0.7.1-getTextExtent.as
@@ -0,0 +1,9 @@
+// makeswf -v 7 -s 200x150 -r 1 -o crash-0.7.1-getTextExtent-refcounting.swf crash-0.7.1-getTextExtent-refcounting.as
+
+tf = new TextFormat ();
+
+for (i = 0; i < 10; i++) {
+  tf.getTextExtent ("hi");
+}
+
+getURL ("fscommand:quit", "");
commit c6f20892f3ef6b34247fc7f85a590e8cdc8f6389
Author: Benjamin Otte <otte at gnome.org>
Date:   Tue Apr 29 22:13:37 2008 +0200

    fix getTextExtent to not crash

diff --git a/swfdec/swfdec_text_format.c b/swfdec/swfdec_text_format.c
index 0b342f6..fb83c86 100644
--- a/swfdec/swfdec_text_format.c
+++ b/swfdec/swfdec_text_format.c
@@ -862,7 +862,10 @@ swfdec_text_format_getTextExtent (SwfdecAsContext *cx, SwfdecAsObject *object,
     pango_shape (text, strlen (text), &analysis, glyph_string);
 
     desc = pango_font_description_new ();
-    pango_font_description_set_family_static (desc, format->font);
+    if (format->font == NULL)
+      pango_font_description_set_family_static (desc, SWFDEC_AS_STR_Times_New_Roman);
+    else
+      pango_font_description_set_family_static (desc, format->font);
     pango_font_description_set_size (desc, format->size * PANGO_SCALE);
     if (format->bold){
       pango_font_description_set_weight (desc, PANGO_WEIGHT_BOLD);
@@ -878,7 +881,6 @@ swfdec_text_format_getTextExtent (SwfdecAsContext *cx, SwfdecAsObject *object,
     g_list_free (item_list);
     pango_font_description_free (desc);
     g_object_unref (G_OBJECT (pcontext));
-    g_object_unref (G_OBJECT (fontmap));
     g_object_unref (G_OBJECT (font));
 
     width = ink_rect.width / PANGO_SCALE + format->left_margin


More information about the Swfdec-commits mailing list