Benjamin Otte
2008-Jan-07 09:44 UTC
[Swfdec] 3 commits - libswfdec-gtk/swfdec_gtk_loader.c libswfdec/swfdec_as_array.c libswfdec/swfdec_asbroadcaster.c libswfdec/swfdec_as_function.c libswfdec/swfdec_as_types.c libswfdec/swfdec_xml.c
libswfdec-gtk/swfdec_gtk_loader.c | 2 -- libswfdec/swfdec_as_array.c | 38 ++++++++++++++++++-------------------- libswfdec/swfdec_as_function.c | 2 +- libswfdec/swfdec_as_types.c | 2 +- libswfdec/swfdec_asbroadcaster.c | 2 +- libswfdec/swfdec_xml.c | 5 +++-- 6 files changed, 24 insertions(+), 27 deletions(-) New commits: commit 7384ece8d36106701d9231cae70a071af55206fe Author: Benjamin Otte <otte at gnome.org> Date: Mon Jan 7 10:39:35 2008 +0100 replace swfdec_as_double_to_string with swfdec_as_integer_to_string where appropriate diff --git a/libswfdec/swfdec_as_array.c b/libswfdec/swfdec_as_array.c index 61a62e9..f28170c 100644 --- a/libswfdec/swfdec_as_array.c +++ b/libswfdec/swfdec_as_array.c @@ -182,7 +182,7 @@ swfdec_as_array_remove_range (SwfdecAsArray *array, gint32 start_index, // to avoid foreach loop, use special case when removing just one variable if (num == 1) { swfdec_as_object_delete_variable (object, - swfdec_as_double_to_string (object->context, start_index)); + swfdec_as_integer_to_string (object->context, start_index)); } else { ForeachRemoveRangeData fdata = { start_index, num }; swfdec_as_object_foreach_remove (object, @@ -208,7 +208,7 @@ swfdec_as_array_foreach_move_range (SwfdecAsObject *object, return variable; if (idx >= fdata->start_index && idx < fdata->start_index + fdata->num) { - return swfdec_as_double_to_string (object->context, + return swfdec_as_integer_to_string (object->context, fdata->to_index + idx - fdata->start_index); } else if (idx >= fdata->to_index && idx < fdata->to_index + fdata->num) { return NULL; @@ -254,7 +254,7 @@ swfdec_as_array_set_range_with_flags (SwfdecAsObject *object, g_return_if_fail (num == 0 || value != NULL); for (i = 0; i < num; i++) { - var = swfdec_as_double_to_string (object->context, start_index + i); + var = swfdec_as_integer_to_string (object->context, start_index + i); swfdec_as_object_set_variable_and_flags (object, var, &value[i], flags); } } @@ -410,7 +410,7 @@ swfdec_as_array_get_value (SwfdecAsArray *array, gint32 idx, g_assert (idx >= 0); g_assert (value != NULL); - var = swfdec_as_double_to_string (SWFDEC_AS_OBJECT (array)->context, idx); + var = swfdec_as_integer_to_string (SWFDEC_AS_OBJECT (array)->context, idx); swfdec_as_object_get_variable (SWFDEC_AS_OBJECT (array), var, value); } @@ -433,7 +433,7 @@ swfdec_as_array_set_value (SwfdecAsArray *array, gint32 idx, g_assert (idx >= 0); g_assert (SWFDEC_IS_AS_VALUE (value)); - var = swfdec_as_double_to_string (SWFDEC_AS_OBJECT (array)->context, idx); + var = swfdec_as_integer_to_string (SWFDEC_AS_OBJECT (array)->context, idx); swfdec_as_object_set_variable (SWFDEC_AS_OBJECT (array), var, value); } @@ -454,7 +454,7 @@ swfdec_as_array_foreach_append_array_range (SwfdecAsObject *object, idx = swfdec_as_array_to_index (variable); if (idx >= fdata->start_index && idx < fdata->start_index + fdata->num) { - var = swfdec_as_double_to_string (fdata->object_to->context, + var = swfdec_as_integer_to_string (fdata->object_to->context, fdata->offset + (idx - fdata->start_index)); swfdec_as_object_set_variable (fdata->object_to, var, value); } @@ -603,12 +603,11 @@ swfdec_as_array_join (SwfdecAsContext *cx, SwfdecAsObject *object, guint argc, if (length > 0) { /* FIXME: implement this with the StringBuilder class */ GString *string; - var = swfdec_as_double_to_string (cx, 0); - swfdec_as_object_get_variable (object, var, &val); + swfdec_as_object_get_variable (object, SWFDEC_AS_STR_0, &val); str = swfdec_as_value_to_string (cx, &val); string = g_string_new (str); for (i = 1; i < length; i++) { - var = swfdec_as_double_to_string (cx, i); + var = swfdec_as_integer_to_string (cx, i); swfdec_as_object_get_variable (object, var, &val); var = swfdec_as_value_to_string (cx, &val); g_string_append (string, sep); @@ -668,7 +667,7 @@ swfdec_as_array_do_pop (SwfdecAsContext *cx, SwfdecAsObject *object, if (length == 0) return; - var = swfdec_as_double_to_string (object->context, length - 1); + var = swfdec_as_integer_to_string (object->context, length - 1); swfdec_as_object_get_variable (object, var, ret); // if Array, the length is reduced by one (which destroys the variable also) @@ -719,8 +718,7 @@ swfdec_as_array_do_shift (SwfdecAsContext *cx, SwfdecAsObject *object, if (length <= 0) return; - var = swfdec_as_double_to_string (object->context, 0); - swfdec_as_object_get_variable (object, var, ret); + swfdec_as_object_get_variable (object, SWFDEC_AS_STR_0, ret); swfdec_as_array_move_range (object, 1, length - 1, 0); @@ -731,12 +729,12 @@ swfdec_as_array_do_shift (SwfdecAsContext *cx, SwfdecAsObject *object, // we have to put the last element back, because we used move, not copy SwfdecAsValue val; if (length > 1) { - var = swfdec_as_double_to_string (object->context, length - 2); + var = swfdec_as_integer_to_string (object->context, length - 2); swfdec_as_object_get_variable (object, var, &val); } else { val = *ret; } - var = swfdec_as_double_to_string (object->context, length - 1); + var = swfdec_as_integer_to_string (object->context, length - 1); swfdec_as_object_set_variable (object, var, &val); } } @@ -752,7 +750,7 @@ swfdec_as_array_foreach_reverse (SwfdecAsObject *object, const char *variable, if (idx == -1 || idx >= *length) return variable; - return swfdec_as_double_to_string (object->context, *length - 1 - idx); + return swfdec_as_integer_to_string (object->context, *length - 1 - idx); } SWFDEC_AS_NATIVE (252, 11, swfdec_as_array_reverse) @@ -801,7 +799,7 @@ swfdec_as_array_concat (SwfdecAsContext *cx, SwfdecAsObject *object, } else { - var = swfdec_as_double_to_string (object->context, + var = swfdec_as_integer_to_string (object->context, swfdec_as_array_length (object_new)); swfdec_as_object_set_variable (object_new, var, &argv[j]); } @@ -1036,7 +1034,7 @@ swfdec_as_array_foreach_sort_rename (SwfdecAsObject *object, // leave room for undefined values if (after_undefined) i += fdata->length - fdata->defined_values - 1; - return swfdec_as_double_to_string (object->context, i); + return swfdec_as_integer_to_string (object->context, i); } if (fdata->order[i] == &fdata->undefined) after_undefined = TRUE; @@ -1070,7 +1068,7 @@ swfdec_as_array_foreach_sort_indexedarray (SwfdecAsObject *object, // leave room for undefined values, that are filled in afterwards if (after_undefined) i += fdata->length - fdata->defined_values - 1; - var = swfdec_as_double_to_string (object->context, i); + var = swfdec_as_integer_to_string (object->context, i); SWFDEC_AS_VALUE_SET_INT (&val, idx); swfdec_as_object_set_variable (fdata->object_new, var, &val); return TRUE; @@ -1102,11 +1100,11 @@ swfdec_as_array_sort_set_undefined_indexedarray (SwfdecAsObject *object, length = swfdec_as_array_length (object); for (i = 0; i < length - fdata->defined_values; i++) { do { - var = swfdec_as_double_to_string (object->context, num); + var = swfdec_as_integer_to_string (object->context, num); num++; } while (swfdec_as_object_get_variable (object, var, &val) && !SWFDEC_AS_VALUE_IS_UNDEFINED (&val)); - var = swfdec_as_double_to_string (fdata->object_new->context, idx + i); + var = swfdec_as_integer_to_string (fdata->object_new->context, idx + i); SWFDEC_AS_VALUE_SET_INT (&val, num - 1); swfdec_as_object_set_variable (fdata->object_new, var, &val); } diff --git a/libswfdec/swfdec_as_function.c b/libswfdec/swfdec_as_function.c index ca1b735..5dce988 100644 --- a/libswfdec/swfdec_as_function.c +++ b/libswfdec/swfdec_as_function.c @@ -231,7 +231,7 @@ swfdec_as_function_apply (SwfdecAsContext *cx, SwfdecAsObject *object, for (i = 0; i < length; i++) { swfdec_as_object_get_variable (array, - swfdec_as_double_to_string (cx, i), &argv_pass[i]); + swfdec_as_integer_to_string (cx, i), &argv_pass[i]); } } else { length = 0; diff --git a/libswfdec/swfdec_as_types.c b/libswfdec/swfdec_as_types.c index 41267ec..8e87a6b 100644 --- a/libswfdec/swfdec_as_types.c +++ b/libswfdec/swfdec_as_types.c @@ -214,7 +214,7 @@ swfdec_as_str_concat (SwfdecAsContext *cx, const char * s1, const char *s2) } /** - * swfdec_as_double_to_string: + * swfdec_as_integer_to_string: * @context: a #SwfdecAsContext * @i: an integer that fits into 32 bits * diff --git a/libswfdec/swfdec_asbroadcaster.c b/libswfdec/swfdec_asbroadcaster.c index 5ea7d58..f15b828 100644 --- a/libswfdec/swfdec_asbroadcaster.c +++ b/libswfdec/swfdec_asbroadcaster.c @@ -64,7 +64,7 @@ broadcastMessage (SwfdecAsContext *cx, SwfdecAsObject *object, /* FIXME: solve this wth foreach, so it gets faster for weird cases */ for (i = 0; i < length; i++) { - swfdec_as_object_get_variable (listeners, swfdec_as_double_to_string (cx, i), &val); + swfdec_as_object_get_variable (listeners, swfdec_as_integer_to_string (cx, i), &val); o = swfdec_as_value_to_object (cx, &val); if (o == NULL) continue; commit d91f7a8ffe15df1be27a5df0c6ad236de8f8afec Author: Benjamin Otte <otte at gnome.org> Date: Mon Jan 7 10:04:19 2008 +0100 [optimize] replace strchr with memchr in XML unescaping This helps a lot when the given string is 11MB long and we only unescape 5 characters. diff --git a/libswfdec/swfdec_xml.c b/libswfdec/swfdec_xml.c index 70b3924..afcf618 100644 --- a/libswfdec/swfdec_xml.c +++ b/libswfdec/swfdec_xml.c @@ -121,13 +121,14 @@ swfdec_xml_unescape_len (SwfdecAsContext *cx, const char *orginal, gssize length, gboolean unescape_nbsp) { int i; - const char *p, *start; + const char *p, *start, *end; GString *string; string = g_string_new (""); p = start = orginal; - while ((p = strchr (p, '&')) != NULL && p - orginal < length) { + end = orginal + length; + while ((p = memchr (p, '&', end - p)) != NULL) { string = g_string_append_len (string, start, p - start); for (i = 0; xml_entities[i].escaped != NULL; i++) { commit 1b0c6573542709794c06462805825797d3d23888 Author: Benjamin Otte <otte at gnome.org> Date: Fri Jan 4 19:18:04 2008 +0100 g_thread_init() is called by swfdec_init() already, no need to call it again diff --git a/libswfdec-gtk/swfdec_gtk_loader.c b/libswfdec-gtk/swfdec_gtk_loader.c index 9836e3f..80d95c7 100644 --- a/libswfdec-gtk/swfdec_gtk_loader.c +++ b/libswfdec-gtk/swfdec_gtk_loader.c @@ -209,8 +209,6 @@ swfdec_gtk_loader_class_init (SwfdecGtkLoaderClass *klass) loader_class->load = swfdec_gtk_loader_load; loader_class->close = swfdec_gtk_loader_close; - if (!g_thread_supported ()) - g_thread_init (NULL); klass->session = soup_session_async_new (); #endif }
Reasonably Related Threads
- Branch 'vivi' - 9 commits - libswfdec/swfdec_as_array.c libswfdec/swfdec_as_function.c libswfdec/swfdec_as_function.h libswfdec/swfdec_as_internal.h libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_native_function.c
- 12 commits - configure.ac doc/Makefile.am doc/swfdec-sections.txt libswfdec/jpeg libswfdec/swfdec_as_array.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_strings.c libswfdec/swfdec_player.c libswfdec/swfdec_player.h libswfdec/swfdec_player_internal.h
- 2 commits - libswfdec/swfdec_as_array.c test/trace
- libswfdec/swfdec_asbroadcaster.c
- 12 commits - libswfdec/Makefile.am libswfdec/swfdec_as_strings.c libswfdec/swfdec_as_types.c libswfdec/swfdec_as_types.h libswfdec/swfdec_gradient_pattern.c libswfdec/swfdec_gradient_pattern.h libswfdec/swfdec_movie_as_drawing.c libswfdec/swfdec_pattern.c