Displaying 17 results from an estimated 17 matches for "nextpc".
Did you mean:
nextp
2008 Jun 02
4
[Bug 16206] New: Charts in Yahoo Finance crash swfdec
http://bugs.freedesktop.org/show_bug.cgi?id=16206
Summary: Charts in Yahoo Finance crash swfdec
Product: swfdec
Version: git
Platform: Other
URL: http://finance.yahoo.com/echarts?s=%5EDJI#symbol=%5EDJI;
range=1d
OS/Version: All
Status: NEW
Severity: critical
Priority: medium
2007 Jan 18
0
Branch 'interpreter' - 2 commits - libswfdec/js libswfdec/swfdec_js_movie.c libswfdec/swfdec_script.c
...->buffer->length;
+ fp->pc = pc;
/* set up stack */
startsp = js_AllocStack (cx, STACKSIZE, &mark);
if (!startsp) {
@@ -426,7 +513,11 @@ swfdec_script_interpret (SwfdecScript *s
ok = spec->exec[version] (cx, action, data, len);
if (!ok)
goto out;
- pc = nextpc;
+ if (fp->pc == pc) {
+ fp->pc = pc = nextpc;
+ } else {
+ pc = fp->pc;
+ }
}
out:
@@ -482,6 +573,7 @@ swfdec_script_execute (SwfdecScript *scr
frame.script = NULL;
frame.varobj = obj;
frame.fun = NULL;
+ frame.swf = script;
frame.thisp = obj;
fram...
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
...N + 1];
+ /* array is for version 3, 4, 5, 6, 7+ */
+} SwfdecActionSpec;
+
+extern const SwfdecActionSpec actions[256];
+void
+swfdec_as_context_run (SwfdecAsContext *context)
+{
+ SwfdecAsFrame *frame;
+ SwfdecScript *script;
+ const SwfdecActionSpec *spec;
+ guint8 *startpc, *pc, *endpc, *nextpc;
+ guint action, len;
+ guint8 *data;
+ int version;
+
+ g_return_if_fail (SWFDEC_IS_AS_CONTEXT (context));
+
+ /* setup data */
+ frame = context->frame;
+ if (frame == NULL)
+ return;
+ script = frame->script;
+ version = EXTRACT_VERSION (script->version);
+ startpc = script...
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
...ut of range", action);
- goto internal_error;
+ goto error;
}
data = pc + 3;
len = pc[1] | pc[2] << 8;
if (data + len > endpc) {
SWFDEC_ERROR ("action %u length %u out of range", action, len);
- goto internal_error;
+ goto error;
}
nextpc = pc + 3 + len;
} else {
@@ -357,7 +361,7 @@ start:
if (spec->exec[version] == NULL) {
SWFDEC_ERROR ("cannot interpret action %u %s for version %u", action,
spec->name ? spec->name : "Unknown", script->version);
- goto internal_error;
+...
2007 Aug 17
0
Branch 'vivi' - 13 commits - libswfdec/swfdec_as_context.c libswfdec/swfdec_as_debugger.h libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_script_function.c test/trace vivified/core vivified/ui
...4cb 100644
--- a/libswfdec/swfdec_as_context.c
+++ b/libswfdec/swfdec_as_context.c
@@ -682,6 +682,7 @@ swfdec_as_context_run (SwfdecAsContext *
SwfdecAsFrame *frame, *last_frame;
SwfdecScript *script;
const SwfdecActionSpec *spec;
+ SwfdecActionExec exec;
guint8 *startpc, *pc, *endpc, *nextpc;
#ifndef G_DISABLE_ASSERT
SwfdecAsValue *check;
@@ -813,12 +814,22 @@ start:
nextpc = pc + 1;
}
/* check action is valid */
- if (spec->exec[version] == NULL) {
- SWFDEC_WARNING ("cannot interpret action %3u 0x%02X %s for version %u, skipping it", action,
-...
2008 Apr 12
2
[Bug 15471] New: segmentation fault while seeking in youtube.com
...e *) 0x0
spec = (const SwfdecActionSpec *) 0xb230bd30
startpc = (const guint8 *) 0xb15cd08 "CWS\a?\206\001"
pc = <value optimized out>
endpc = (const guint8 *) 0xb1753de "
---Type <return> to continue, or q <return> to quit---
nextpc = (const guint8 *) 0xb170edc "\027\226\r"
exitpc = (const guint8 *) 0xb170f0d "O\226\004"
check = (SwfdecAsValue *) 0x0
action = 82
len = 0
data = (const guint8 *) 0x0
original_version = 4294967295
step = (void (*)(SwfdecAs...
2007 Nov 07
0
14 commits - libswfdec/swfdec_as_context.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_interpret.h libswfdec/swfdec_net_stream.c libswfdec/swfdec_script.c libswfdec/swfdec_sprite_movie.c libswfdec/swfdec_tag.c libswfdec/swfdec_text_field_movie.c
.../libswfdec/swfdec_as_context.c
+++ b/libswfdec/swfdec_as_context.c
@@ -762,14 +762,12 @@ swfdec_as_context_run (SwfdecAsContext *context)
SwfdecAsFrame *frame, *last_frame;
SwfdecScript *script;
const SwfdecActionSpec *spec;
- SwfdecActionExec exec;
const guint8 *startpc, *pc, *endpc, *nextpc, *exitpc;
#ifndef G_DISABLE_ASSERT
SwfdecAsValue *check;
#endif
guint action, len;
const guint8 *data;
- int version;
guint original_version;
void (* step) (SwfdecAsDebugger *debugger, SwfdecAsContext *context);
gboolean check_block; /* some opcodes avoid a scope check */
@@ -8...
2007 Oct 22
0
6 commits - doc/Makefile.am doc/swfdec-sections.txt libswfdec-gtk/swfdec_gtk_player.c libswfdec/swfdec_as_context.c libswfdec/swfdec_as_context.h libswfdec/swfdec_as_internal.h libswfdec/swfdec_player.c libswfdec/swfdec_player.h
...rame = context->frame->next;
original_version = context->version;
start:
+ if (!swfdec_as_context_check_continue (context))
+ goto error;
/* setup data */
frame = context->frame;
if (frame == context->last_frame)
@@ -892,6 +894,10 @@ start:
frame->pc = pc = nextpc;
check_block = TRUE;
} else {
+ if (frame->pc < pc &&
+ !swfdec_as_context_check_continue (context)) {
+ goto error;
+ }
pc = frame->pc;
check_block = FALSE;
}
@@ -1339,3 +1345,28 @@ swfdec_as_context_startup (SwfdecAsContext *context, gui...
2007 Dec 02
2
[Bug 13491] New: 5min.com player causes assertion
...*) 0x36a5d80
last_frame = (SwfdecAsFrame *) 0x0
spec = <value optimized out>
startpc = (const guint8 *) 0x2aaab0367de0 "CWS\b\004\023\b"
pc = (const guint8 *) 0x4dc3f10 ""
endpc = (const guint8 *) 0x2aaab03e90e4 ""
nextpc = (const guint8 *) 0x2aaab0378406 "\226\002"
exitpc = (const guint8 *) 0x2aaab037864f "O\226\004"
check = <value optimized out>
action = 82
len = <value optimized out>
data = (const guint8 *) 0x0
original_version = 8...
2007 Sep 13
0
5 commits - libswfdec/Makefile.am libswfdec/swfdec_as_context.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame_internal.h libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_scope.c libswfdec/swfdec_as_scope.h libswfdec/swfdec_as_script_function.c
...rame);
/* decode next action */
action = *pc;
@@ -847,7 +848,7 @@ start:
SWFDEC_WARNING ("cannot interpret action %3u 0x%02X %s for version %u, skipping it", action,
action, spec->name ? spec->name : "Unknown", script->version);
frame->pc = pc = nextpc;
- check_scope = TRUE;
+ check_block = TRUE;
continue;
}
SWFDEC_WARNING ("cannot interpret action %3u 0x%02X %s for version %u, using version %u instead",
@@ -875,10 +876,10 @@ start:
/* FIXME: do this via flag? */
if (frame->pc == pc) {
frame->pc =...
2007 Mar 09
0
17 commits - libswfdec/js libswfdec/swfdec_js.c libswfdec/swfdec_js_global.c libswfdec/swfdec_js.h libswfdec/swfdec_js_movie.c libswfdec/swfdec_movie.c libswfdec/swfdec_player.c libswfdec/swfdec_player_internal.h libswfdec/swfdec_root_movie.c
..._function, 0, -1, { NULL, NULL, NULL, swfdec_action_define_function, swfdec_action_define_function } },
[0x8f] = { "Try", NULL },
/* version 5 */
[0x94] = { "With", NULL },
@@ -2560,7 +2581,10 @@ swfdec_script_interpret (SwfdecScript *s
guint8 *startpc, *pc, *endpc, *nextpc;
JSBool ok = JS_TRUE;
void *mark;
- jsval *startsp, *endsp, *checksp;
+ jsval *startsp;
+#ifndef G_DISABLE_ASSERT
+ jsval *checksp;
+#endif
int stack_check;
guint action, len;
guint8 *data;
@@ -2636,8 +2660,8 @@ swfdec_script_interpret (SwfdecScript *s
goto out;
}
fp-&g...
2007 Jul 07
0
Branch 'as' - 7 commits - libswfdec/swfdec_as_context.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h libswfdec/swfdec_as_super.c libswfdec/swfdec_as_super.h libswfdec/swfdec_as_with.c test/trace
...SWFDEC_WARNING ("cannot interpret action %3u 0x%02X %s for version %u, skipping it", action,
action, spec->name ? spec->name : "Unknown", script->version);
- /* FIXME: figure out what flash player does here */
- goto error;
+ frame->pc = pc = nextpc;
+ check_scope = TRUE;
+ continue;
}
if (spec->remove > 0) {
swfdec_as_stack_ensure_size (stack, spec->remove);
diff-tree f09bcc6abc2629a38f1524d647ec5ee1e6c2b612 (from d4d1998c7e04a7651d89a2c3fb56eb90ba3d474d)
Author: Benjamin Otte <otte at gnome.org>
Date...
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
...#39;t support scripts", version);
return NULL;
}
@@ -2754,340 +319,6 @@ swfdec_script_unref (SwfdecScript *scrip
g_free (script);
}
-#if 0
-JSBool
-swfdec_script_interpret (SwfdecScript *script, JSContext *cx, jsval *rval)
-{
- JSStackFrame *fp;
- guint8 *startpc, *pc, *endpc, *nextpc;
- JSBool ok = JS_TRUE;
- void *mark;
- jsval *startsp;
-#ifndef G_DISABLE_ASSERT
- jsval *checksp;
-#endif
- int stack_check;
- guint action, len;
- guint8 *data;
- guint version;
- const SwfdecActionSpec *spec;
-
- /* set up general stuff */
- swfdec_script_ref (script);
- version =...
2007 Jan 25
0
Branch 'interpreter' - 28 commits - configure.ac libswfdec/js libswfdec/swfdec_buffer.c libswfdec/swfdec_edittext_movie.c libswfdec/swfdec_js.c libswfdec/swfdec_js_global.c libswfdec/swfdec_js.h libswfdec/swfdec_js_movie.c libswfdec/swfdec_player.c
...LL, NULL, swfdec_action_call_method, swfdec_action_call_method, swfdec_action_call_method } },
[0x53] = { "NewMethod", NULL },
/* version 6 */
[0x54] = { "InstanceOf", NULL },
@@ -726,7 +803,7 @@ swfdec_script_interpret (SwfdecScript *s
guint8 *startpc, *pc, *endpc, *nextpc;
JSBool ok = JS_TRUE;
void *mark;
- jsval *startsp, *endsp;
+ jsval *startsp, *endsp, *checksp;
int stack_check;
guint action, len;
guint8 *data;
@@ -800,6 +877,8 @@ swfdec_script_interpret (SwfdecScript *s
goto internal_error;
}
if (spec->add < 0) {
+ /...
2007 Jun 05
0
Branch 'as' - 8 commits - libswfdec/Makefile.am libswfdec/swfdec_as_context.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame.h libswfdec/swfdec_as_interpret.c libswfdec/swfdec_as_number.c libswfdec/swfdec_as_scope.h
...nymore", pc, startpc, endpc);
goto error;
}
+ if (check_scope)
+ swfdec_as_frame_check_scope (frame);
/* decode next action */
action = *pc;
@@ -508,8 +512,10 @@ start:
/* FIXME: do this via flag? */
if (frame->pc == pc) {
frame->pc = pc = nextpc;
+ check_scope = TRUE;
} else {
pc = frame->pc;
+ check_scope = FALSE;
}
if (frame == context->frame) {
#ifndef G_DISABLE_ASSERT
diff --git a/libswfdec/swfdec_as_frame.c b/libswfdec/swfdec_as_frame.c
index b36e1e4..de18973 100644
--- a/libswfdec/swfdec_as_fram...
2007 Feb 06
0
109 commits - configure.ac libswfdec/js libswfdec/Makefile.am libswfdec/swfdec_bits.c libswfdec/swfdec_bits.h libswfdec/swfdec_buffer.c libswfdec/swfdec_button_movie.c libswfdec/swfdec_codec_screen.c libswfdec/swfdec_color.c libswfdec/swfdec_color.h
...LL, NULL, swfdec_action_call_method, swfdec_action_call_method, swfdec_action_call_method } },
[0x53] = { "NewMethod", NULL },
/* version 6 */
[0x54] = { "InstanceOf", NULL },
@@ -726,7 +803,7 @@ swfdec_script_interpret (SwfdecScript *s
guint8 *startpc, *pc, *endpc, *nextpc;
JSBool ok = JS_TRUE;
void *mark;
- jsval *startsp, *endsp;
+ jsval *startsp, *endsp, *checksp;
int stack_check;
guint action, len;
guint8 *data;
@@ -800,6 +877,8 @@ swfdec_script_interpret (SwfdecScript *s
goto internal_error;
}
if (spec->add < 0) {
+ /...
2007 Aug 22
0
163 commits - autogen.sh configure.ac doc/swfdec-sections.txt libswfdec-gtk/swfdec_gtk_player.c libswfdec-gtk/swfdec_gtk_player.h libswfdec-gtk/swfdec_gtk_widget.c libswfdec-gtk/swfdec_source.c libswfdec/Makefile.am libswfdec/swfdec_as_array.c
...4cb 100644
--- a/libswfdec/swfdec_as_context.c
+++ b/libswfdec/swfdec_as_context.c
@@ -682,6 +682,7 @@ swfdec_as_context_run (SwfdecAsContext *
SwfdecAsFrame *frame, *last_frame;
SwfdecScript *script;
const SwfdecActionSpec *spec;
+ SwfdecActionExec exec;
guint8 *startpc, *pc, *endpc, *nextpc;
#ifndef G_DISABLE_ASSERT
SwfdecAsValue *check;
@@ -813,12 +814,22 @@ start:
nextpc = pc + 1;
}
/* check action is valid */
- if (spec->exec[version] == NULL) {
- SWFDEC_WARNING ("cannot interpret action %3u 0x%02X %s for version %u, skipping it", action,
-...