Displaying 9 results from an estimated 9 matches for "swfdec_type_as_undefin".
Did you mean:
swfdec_type_as_undefined
2007 Apr 12
0
Branch 'as' - 14 commits - libswfdec-gtk/swfdec_playback_alsa.c libswfdec/swfdec_as_context.c libswfdec/swfdec_as_context.h libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame.h libswfdec/swfdec_as_function.c libswfdec/swfdec_as_function.h
...r/swfdec_debug_stack.c b/player/swfdec_debug_stack.c
index cd42487..591d53c 100644
--- a/player/swfdec_debug_stack.c
+++ b/player/swfdec_debug_stack.c
@@ -39,17 +39,17 @@ static const char *
swfdec_get_value_type (SwfdecAsContext *cx, SwfdecAsValue *value)
{
switch (value->type) {
- case SWFDEC_TYPE_AS_UNDEFINED:
+ case SWFDEC_AS_TYPE_UNDEFINED:
return "undefined";
- case SWFDEC_TYPE_AS_NULL:
+ case SWFDEC_AS_TYPE_NULL:
return "null";
- case SWFDEC_TYPE_AS_NUMBER:
+ case SWFDEC_AS_TYPE_NUMBER:
return "Number";
- case SWFDEC_TYPE_AS_BOOL...
2007 Apr 11
0
Branch 'as' - 4 commits - libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_types.c libswfdec/swfdec_as_types.h
..._value_to_integer (SwfdecAsCont
SwfdecAsObject *
swfdec_as_value_to_object (SwfdecAsContext *context, const SwfdecAsValue *value)
{
+ g_return_val_if_fail (SWFDEC_IS_AS_CONTEXT (context), NULL);
+ g_return_val_if_fail (SWFDEC_IS_AS_VALUE (value), NULL);
+
switch (value->type) {
case SWFDEC_TYPE_AS_UNDEFINED:
case SWFDEC_TYPE_AS_NULL:
@@ -244,3 +247,46 @@ swfdec_as_value_to_object (SwfdecAsConte
}
}
+/**
+ * swfdec_as_value_to_boolean:
+ * @context: a #SwfdecAsContext
+ * @value: value to convert
+ *
+ * Converts the given value to a boolean according to Flash's rules. Note that
+ * th...
2007 Apr 12
0
Branch 'as' - 15 commits - libswfdec/swfdec_as_context.c libswfdec/swfdec_as_context.h libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame.h libswfdec/swfdec_as_function.c libswfdec/swfdec_as_function.h libswfdec/swfdec_as_interpret.c
...alue *rval, *lval;
+ SwfdecAsType ltype, rtype;
+ gboolean cond;
+
+ rval = swfdec_as_stack_peek (cx->frame->stack, 1);
+ lval = swfdec_as_stack_peek (cx->frame->stack, 2);
+ ltype = lval->type;
+ rtype = rval->type;
+ if (ltype == rtype) {
+ switch (ltype) {
+ case SWFDEC_TYPE_AS_UNDEFINED:
+ case SWFDEC_TYPE_AS_NULL:
+ cond = TRUE;
+ break;
+ case SWFDEC_TYPE_AS_BOOLEAN:
+ cond = SWFDEC_AS_VALUE_GET_BOOLEAN (lval) == SWFDEC_AS_VALUE_GET_BOOLEAN (rval);
+ break;
+ case SWFDEC_TYPE_AS_NUMBER:
+ cond = SWFDEC_AS_VALUE_GET_NUMBER (lval) == SWFDEC_AS_VALUE_GET_NUMBER (rv...
2007 Apr 04
0
Branch 'as' - 9 commits - libswfdec/swfdec_as_context.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame.h libswfdec/swfdec_as_function.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_stack.c libswfdec/swfdec_as_stack.h
...ext->frame = context->frame->next;
swfdec_as_stack_ensure_left (context->frame->stack, 1);
if (retval) {
- swfdec_as_stack_push (context->frame->stack, retval);
+ *swfdec_as_stack_push (context->frame->stack) = *retval;
} else {
- SwfdecAsValue value = { SWFDEC_TYPE_AS_UNDEFINED, };
- swfdec_as_stack_push (context->frame->stack, &value);
+ SWFDEC_AS_VALUE_SET_UNDEFINED (swfdec_as_stack_push (context->frame->stack));
}
}
diff --git a/libswfdec/swfdec_as_function.c b/libswfdec/swfdec_as_function.c
index 68e98c5..29ef86e 100644
--- a/libswfdec/sw...
2007 Mar 28
0
Branch 'as' - 3 commits - libswfdec/Makefile.am libswfdec/swfdec_as_context.c libswfdec/swfdec_as_context.h libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame.h libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h libswfdec/swfdec_as_types.c
...ue SwfdecAsValue;
@@ -48,7 +49,7 @@ struct _SwfdecAsValue {
} value;
};
-#define SWFDEC_AS_IS_VALUE(val) ((val)->type <= SWFDEC_TYPE_AS_OBJECT)
+#define SWFDEC_IS_AS_VALUE(val) ((val)->type <= SWFDEC_TYPE_AS_OBJECT)
#define SWFDEC_AS_VALUE_IS_UNDEFINED(val) ((val)->type == SWFDEC_TYPE_AS_UNDEFINED)
#define SWFDEC_AS_VALUE_SET_UNDEFINED(val) (val)->type = SWFDEC_TYPE_AS_UNDEFINED
@@ -87,8 +88,9 @@ struct _SwfdecAsValue {
/* List of static strings that are required all the time */
extern const char *swfdec_as_strings[];
-#define SWFDEC_AS_EMPTY_STRING (swfdec_as_strings[0] + 1)
-#def...
2007 Apr 05
0
Branch 'as' - 9 commits - configure.ac libswfdec/swfdec_as_context.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame.h libswfdec/swfdec_as_function.h libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h
...return SWFDEC_AS_STR_EMPTY;
}
}
+
+double
+swfdec_as_value_to_number (SwfdecAsContext *context, const SwfdecAsValue *value)
+{
+ g_return_val_if_fail (SWFDEC_IS_AS_CONTEXT (context), 0.0);
+ g_return_val_if_fail (SWFDEC_IS_AS_VALUE (value), 0.0);
+
+ switch (value->type) {
+ case SWFDEC_TYPE_AS_UNDEFINED:
+ case SWFDEC_TYPE_AS_NULL:
+ return (context->version >= 7) ? NAN : 0.0;
+ case SWFDEC_TYPE_AS_BOOLEAN:
+ return SWFDEC_AS_VALUE_GET_BOOLEAN (value) ? 1 : 0;
+ case SWFDEC_TYPE_AS_NUMBER:
+ return SWFDEC_AS_VALUE_GET_NUMBER (value);
+ case SWFDEC_TYPE_AS_STRING:...
2007 Mar 29
0
Branch 'as' - 9 commits - configure.ac doc/swfdec-sections.txt libswfdec/Makefile.am libswfdec/swfdec_as_context.c libswfdec/swfdec_as_context.h libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame.h libswfdec/swfdec_as_stack.c
...n_if_fail (retval == NULL || SWFDEC_IS_AS_VALUE (retval));
+
+ context->frame = context->frame->next;
+ swfdec_as_stack_ensure_left (context->frame->stack, 1);
+ if (retval) {
+ swfdec_as_stack_push (context->frame->stack, retval);
+ } else {
+ SwfdecAsValue value = { SWFDEC_TYPE_AS_UNDEFINED, };
+ swfdec_as_stack_push (context->frame->stack, &value);
+ }
+}
diff --git a/libswfdec/swfdec_as_context.h b/libswfdec/swfdec_as_context.h
index 67e7ec2..420df04 100644
--- a/libswfdec/swfdec_as_context.h
+++ b/libswfdec/swfdec_as_context.h
@@ -82,6 +82,8 @@ void swfdec_as_value...
2007 Mar 29
0
Branch 'as' - 9 commits - libswfdec-gtk/swfdec_playback_alsa.c libswfdec/js libswfdec/Makefile.am libswfdec/swfdec_as_context.c libswfdec/swfdec_as_context.h libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame.h libswfdec/swfdec_as_function.c
...else {
+ n_args = 0;
+ }
+ /* now do different things depending on if we're a native function or not */
+ if (function->native) {
+ if (n_args < function->min_args) {
+ SwfdecAsStack *stack = context->frame->stack;
+ if (n_args == 0) {
+ SwfdecAsValue value = { SWFDEC_TYPE_AS_UNDEFINED, };
+ swfdec_as_stack_ensure_size (stack, 1);
+ swfdec_as_stack_push (stack, &value);
+ } else {
+ stack->cur -= (n_args - 1);
+ SWFDEC_AS_VALUE_SET_UNDEFINED (swfdec_as_stack_peek (stack, 1));
+ }
+ return;
+ }
+ g_assert_not_reached ();
+ } else {
+ SwfdecAsFrame...
2007 Apr 04
0
Branch 'as' - 4 commits - libswfdec/Makefile.am libswfdec/swfdec_as_context.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_interpret.h libswfdec/swfdec_as_object.c libswfdec/swfdec_as_types.c libswfdec/swfdec_as_types.h
..._EMPTY);
g_return_val_if_fail (SWFDEC_IS_AS_VALUE (value), SWFDEC_AS_STR_EMPTY);
- if (SWFDEC_AS_VALUE_IS_STRING (value)) {
- return SWFDEC_AS_VALUE_GET_STRING (value);
+ switch (value->type) {
+ case SWFDEC_TYPE_AS_STRING:
+ return SWFDEC_AS_VALUE_GET_STRING (value);
+ case SWFDEC_TYPE_AS_UNDEFINED:
+ if (context->version > 6)
+ return SWFDEC_AS_STR_UNDEFINED;
+ else
+ return SWFDEC_AS_STR_EMPTY;
+ case SWFDEC_TYPE_AS_BOOLEAN:
+ return SWFDEC_AS_VALUE_GET_BOOLEAN (value) ? SWFDEC_AS_STR_TRUE : SWFDEC_AS_STR_FALSE;
+ case SWFDEC_TYPE_AS_NULL:
+ return SWFDEC_A...