[Swfdec-commits] swfdec/swfdec_text_format.c
Benjamin Otte
company at kemper.freedesktop.org
Wed Jun 4 08:47:37 PDT 2008
swfdec/swfdec_text_format.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
New commits:
commit b575529e5101bd86746e5696648f73e89cb60854
Author: Benjamin Otte <otte at gnome.org>
Date: Wed Jun 4 17:46:36 2008 +0200
ensure the getTextExtent function exists on all TextFormat objects
even those created by native function and not via new TextFormat()
diff --git a/swfdec/swfdec_text_format.c b/swfdec/swfdec_text_format.c
index ec5706b..0126683 100644
--- a/swfdec/swfdec_text_format.c
+++ b/swfdec/swfdec_text_format.c
@@ -1068,7 +1068,8 @@ swfdec_text_format_copy (const SwfdecTextFormat *copy_from)
SwfdecAsObject *
swfdec_text_format_new_no_properties (SwfdecAsContext *context)
{
- SwfdecAsObject *ret;
+ SwfdecAsObject *tmp, *ret;
+ SwfdecAsFunction *function;
SwfdecAsValue val;
g_return_val_if_fail (SWFDEC_IS_AS_CONTEXT (context), NULL);
@@ -1087,6 +1088,17 @@ swfdec_text_format_new_no_properties (SwfdecAsContext *context)
return ret;
swfdec_as_object_set_constructor (ret, SWFDEC_AS_VALUE_GET_OBJECT (&val));
+ // FIXME: Need better way to create function without prototype/constructor
+ tmp = context->Function;
+ context->Function = NULL;
+ function = swfdec_as_native_function_new (context, SWFDEC_AS_STR_getTextExtent,
+ swfdec_text_format_getTextExtent, 0, NULL);
+ context->Function = tmp;
+ if (function != NULL) {
+ SWFDEC_AS_VALUE_SET_OBJECT (&val, SWFDEC_AS_OBJECT (function));
+ swfdec_as_object_set_variable (ret, SWFDEC_AS_STR_getTextExtent, &val);
+ }
+
return ret;
}
More information about the Swfdec-commits
mailing list