Displaying 20 results from an estimated 26 matches for "js_getprivate".
2007 Mar 22
0
7 commits - configure.ac doc/swfdec-docs.sgml libswfdec/js libswfdec/swfdec_buffer.c libswfdec/swfdec_buffer.h libswfdec/swfdec_js_movie.c test/trace
...failure but silently return
diff --git a/libswfdec/swfdec_js_movie.c b/libswfdec/swfdec_js_movie.c
index 2d9b1a1..3f6333c 100644
--- a/libswfdec/swfdec_js_movie.c
+++ b/libswfdec/swfdec_js_movie.c
@@ -116,7 +116,11 @@ mc_play (JSContext *cx, JSObject *obj, u
{
SwfdecMovie *movie;
- movie = JS_GetPrivate(cx, obj);
+ movie = swfdec_scriptable_from_object (cx, obj, SWFDEC_TYPE_MOVIE);
+ if (movie == NULL) {
+ SWFDEC_WARNING ("not a movie");
+ return JS_TRUE;
+ }
g_assert (movie);
movie->stopped = FALSE;
@@ -128,8 +132,11 @@ mc_stop (JSContext *cx, JSObject *obj, u
{...
2007 Mar 05
0
5 commits - libswfdec/swfdec_js.h libswfdec/swfdec_js_movie.c libswfdec/swfdec_script.c test/trace
...ckFrame *fp = cx->fp;
- jsval constructor;
+ jsval constructor, proto;
JSObject *object;
const JSClass *clasp;
guint n_args;
@@ -1414,7 +1414,12 @@ swfdec_action_new_object (JSContext *cx,
if (JS_GetClass (object) != &js_FunctionClass)
goto fail;
clasp = ((JSFunction *) JS_GetPrivate (cx, object))->clasp;
- object = JS_NewObject (cx, clasp, NULL, NULL);
+ if (!JS_GetProperty (cx, object, "prototype", &proto))
+ return JS_FALSE;
+ if (!JSVAL_IS_OBJECT (proto)) {
+ SWFDEC_ERROR ("prototype of %s is not an object", name);
+ }
+ object = JS_New...
2007 May 23
0
Branch 'as' - 7 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_object.c libswfdec/swfdec_as_object.h libswfdec/swfdec_as_strings.c
...e "swfdec_js.h"
-#include "swfdec_debug.h"
-#include "swfdec_movie.h"
-#include "swfdec_player_internal.h"
-
-static JSBool
-swfdec_js_color_get_rgb (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
-{
- int result;
- SwfdecMovie *movie = JS_GetPrivate (cx, obj);
-
- if (!movie)
- return JS_TRUE;
- result = (movie->color_transform.rb << 16) |
- ((movie->color_transform.gb % 256) << 8) |
- (movie->color_transform.bb % 256);
- *rval = INT_TO_JSVAL (result);
- return JS_TRUE;
-}
-
-static inline void
-add_variable...
2007 Jan 16
0
9 commits - libswfdec/js libswfdec/Makefile.am libswfdec/swfdec_audio_stream.c libswfdec/swfdec_audio_stream.h libswfdec/swfdec_cache.c libswfdec/swfdec_cached.c libswfdec/swfdec_cached.h libswfdec/swfdec_edittext_movie.c libswfdec/swfdec_image.c
...ute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -39,30 +39,12 @@
JSBool swfdec_js_global_eval (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval);
-static void
-movie_finalize (JSContext *cx, JSObject *obj)
-{
- SwfdecMovie *movie;
-
- movie = JS_GetPrivate (cx, obj);
- /* since we also finalize the class, not everyone has a private object */
- if (movie) {
- g_assert (movie->jsobj != NULL);
-
- SWFDEC_LOG ("destroying JSObject %p for movie %p", obj, movie);
- movie->jsobj = NULL;
- g_object_unref (movie);
- } else {
-...
2007 Mar 01
0
7 commits - libswfdec/swfdec_connection.c libswfdec/swfdec_js_connection.c libswfdec/swfdec_js_movie.c libswfdec/swfdec_js_net_stream.c libswfdec/swfdec_js_xml.c libswfdec/swfdec_net_stream.c libswfdec/swfdec_scriptable.c libswfdec/swfdec_scriptable.h
...TYPE_SCRIPTABLE), NULL);
+
+ if (object == NULL)
+ return NULL;
+ klass = g_type_class_peek (type);
+ if (klass == NULL)
+ return NULL; /* class doesn't exist -> no object of this type exists */
+ if (!JS_InstanceOf (cx, object, klass->jsclass, NULL))
+ return NULL;
+ return JS_GetPrivate (cx, object);
+}
+
+/**
* swfdec_scriptable_from_jsval:
* @cx: a #JSContext
* @val: the jsval to convert
@@ -138,22 +167,14 @@ swfdec_scriptable_get_object (SwfdecScri
gpointer
swfdec_scriptable_from_jsval (JSContext *cx, jsval val, GType type)
{
- SwfdecScriptableClass *klass;
JSObjec...
2007 Mar 13
0
4 commits - test/swfscript.c
...oid *movieclip);
extern void g_free (void *p);
JSBool
@@ -921,7 +921,7 @@ js_obj_toString(JSContext *cx, JSObject
*rval = STRING_TO_JSVAL(cx->runtime->emptyString);
return JS_TRUE;
}
- if (clasp == &movieclip_class) {
+ if (swfdec_js_is_movieclip (cx, obj)) {
void *p = JS_GetPrivate (cx, obj);
if (p) {
char *path = swfdec_movie_get_path (p);
2007 Jul 13
0
4 commits - configure.ac libswfdec/swfdec_as_internal.h libswfdec/swfdec_as_object.h libswfdec/swfdec_scriptable.c libswfdec/swfdec_scriptable.h NEWS
...able_finalize:
- * @cx: a #JSContext
- * @obj: a #JSObject to finalize
- *
- * This function is intended to be used as the finalizer in the #JSClass used
- * by a scriptable subtype.
- **/
-void
-swfdec_scriptable_finalize (JSContext *cx, JSObject *obj)
-{
- SwfdecScriptable *script;
-
- script = JS_GetPrivate (cx, obj);
- /* since we also finalize the prototype, not everyone has a private object */
- if (script) {
- g_assert (SWFDEC_IS_SCRIPTABLE (script));
- g_assert (script->jsobj != NULL);
-
- SWFDEC_LOG ("destroying JSObject %p for %s %p", obj,
- G_OBJECT_TYPE_NAME (script),...
2007 Jan 31
0
Branch 'interpreter' - 20 commits - autogen.sh configure.ac libswfdec/js libswfdec/swfdec_debug.h libswfdec/swfdec_js.c libswfdec/swfdec_js_color.c libswfdec/swfdec_js_movie.c libswfdec/swfdec_movie.c libswfdec/swfdec_movie.h libswfdec/swfdec_script.c
...s also fixes the color-new test
diff --git a/libswfdec/swfdec_js_color.c b/libswfdec/swfdec_js_color.c
index ade8d6a..095abd7 100644
--- a/libswfdec/swfdec_js_color.c
+++ b/libswfdec/swfdec_js_color.c
@@ -32,7 +32,8 @@ swfdec_js_color_get_rgb (JSContext *cx,
int result;
SwfdecMovie *movie = JS_GetPrivate (cx, obj);
- g_assert (movie);
+ if (!movie)
+ return JS_TRUE;
result = (movie->color_transform.rb << 16) |
((movie->color_transform.gb % 256) << 8) |
(movie->color_transform.bb % 256);
@@ -55,7 +56,8 @@ swfdec_js_color_get_transform (JSContext
JSObject...
2007 Mar 01
0
11 commits - libswfdec/Makefile.am libswfdec/swfdec_connection.c libswfdec/swfdec_connection.h libswfdec/swfdec_flv_decoder.c libswfdec/swfdec_js.c libswfdec/swfdec_js_connection.c libswfdec/swfdec_js.h libswfdec/swfdec_js_net_stream.c
...JSVAL (string);
+ return JS_TRUE;
+}
+
+static JSFunctionSpec net_stream_methods[] = {
+ { "toString", swfdec_js_net_stream_to_string, 0, 0, 0 },
+ {0,0,0,0,0}
+};
+
+static void
+swfdec_js_net_stream_finalize (JSContext *cx, JSObject *obj)
+{
+ SwfdecNetStream *stream;
+
+ stream = JS_GetPrivate (cx, obj);
+ if (stream) {
+ SWFDEC_SCRIPTABLE (stream)->jsobj = NULL;
+ g_object_unref (stream);
+ }
+}
+
+static JSClass net_stream_class = {
+ "NetStream", JSCLASS_HAS_PRIVATE,
+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
+ JS_EnumerateSt...
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
...gt;
#include <js/jsapi.h>
+#include <js/jsinterp.h> /* for JS_IntetrnalCall */
#include "swfdec_js.h"
#include "swfdec_movie.h"
#include "swfdec_bits.h"
@@ -605,11 +606,13 @@ swfdec_js_movie_to_string (JSContext *cx
SwfdecMovie *movie;
movie = JS_GetPrivate (cx, obj);
- g_assert (movie);
-
- s = swfdec_movie_get_path (movie);
- string = JS_NewStringCopyZ (cx, s);
- g_free (s);
+ if (movie) {
+ s = swfdec_movie_get_path (movie);
+ string = JS_NewStringCopyZ (cx, s);
+ g_free (s);
+ } else {
+ string = JS_NewStringCopyZ (cx, "[obj...
2007 Mar 21
0
4 commits - libswfdec/swfdec_js_movie.c libswfdec/swfdec_script.c player/swfdec_slow_loader.c
...4
--- a/libswfdec/swfdec_js_movie.c
+++ b/libswfdec/swfdec_js_movie.c
@@ -610,12 +610,26 @@ swfdec_js_getURL (JSContext *cx, JSObjec
return JS_TRUE;
}
+static JSBool
+swfdec_js_getDepth (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
+{
+ SwfdecMovie *movie;
+
+ movie = JS_GetPrivate (cx, obj);
+ if (!movie)
+ return JS_TRUE;
+
+ *rval = INT_TO_JSVAL (movie->depth);
+ return JS_TRUE;
+}
+
static JSFunctionSpec movieclip_methods[] = {
{ "attachMovie", swfdec_js_movie_attachMovie, 3, 0, 0 },
{ "duplicateMovieClip", swfdec_js_movie_duplicateMovi...
2007 Mar 11
0
10 commits - libswfdec/js libswfdec/swfdec_js_color.c libswfdec/swfdec_js_connection.c libswfdec/swfdec_js_movie.c libswfdec/swfdec_js_net_stream.c libswfdec/swfdec_js_video.c libswfdec/swfdec_js_xml.c libswfdec/swfdec_script.c player/.gitignore
...hars[nchars] = (jschar)*clazz) != 0)
- nchars++, clazz++;
- chars[nchars++] = ']';
- chars[nchars] = 0;
-
- str = js_NewString(cx, chars, nchars, 0);
- if (!str) {
- JS_free(cx, chars);
- return JS_FALSE;
+ if (clasp == &movieclip_class) {
+ void *p = JS_GetPrivate (cx, obj);
+ if (p) {
+ char *path = swfdec_movie_get_path (p);
+ str = JS_NewStringCopyZ (cx, path);
+ g_free (path);
+ if (!str)
+ return JS_FALSE;
+ *rval = STRING_TO_JSVAL(str);
+ return JS_TRUE;
+ }
}
+ if (clasp == &js_FunctionClass) {
+ name = "[type...
2007 Feb 22
0
3 commits - libswfdec/swfdec_js.c libswfdec/swfdec_js_movie.c libswfdec/swfdec_script.c
...al *argv, jsval *rval)
{
SwfdecMovie *movie;
SwfdecDecoder *dec;
@@ -101,6 +101,23 @@ mc_getBytesTotal(JSContext *cx, JSObject
}
static JSBool
+mc_getNextHighestDepth (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
+{
+ SwfdecMovie *movie;
+ int depth;
+
+ movie = JS_GetPrivate(cx, obj);
+ if (movie->list) {
+ depth = SWFDEC_MOVIE (g_list_last (movie->list)->data)->depth + 1;
+ if (depth < 0)
+ depth = 0;
+ } else {
+ depth = 0;
+ }
+ return JS_NewNumberValue (cx, depth, rval);
+}
+
+static JSBool
mc_do_goto (JSContext *cx, SwfdecMovie *m...
2007 May 29
0
Branch 'as' - 6 commits - libswfdec/swfdec_as_interpret.c libswfdec/swfdec_js_xml.c libswfdec/swfdec_tag.c player/swfplay.c
...2007 +0200
merge master
diff --git a/libswfdec/swfdec_js_xml.c b/libswfdec/swfdec_js_xml.c
index 59632b6..92da66e 100644
--- a/libswfdec/swfdec_js_xml.c
+++ b/libswfdec/swfdec_js_xml.c
@@ -32,7 +32,7 @@ swfdec_js_xml_load (JSContext *cx, JSObj
SwfdecXml *xml;
const char *url;
- xml = JS_GetPrivate (cx, obj);
+ xml = swfdec_scriptable_from_object (cx, obj, SWFDEC_TYPE_XML);
if (xml == NULL)
return JS_TRUE;
url = swfdec_js_to_string (cx, argv[0]);
diff --git a/player/swfplay.c b/player/swfplay.c
index 0c2e062..46737ae 100644
--- a/player/swfplay.c
+++ b/player/swfplay.c
@@ -122,6 +...
2007 Jun 27
0
Branch 'as' - 16 commits - configure.ac libswfdec/Makefile.am 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_script_function.c
...;clear", swfdec_js_video_clear, 0, 0, 0 },
- {0,0,0,0,0}
-};
-
static void
-swfdec_js_video_finalize (JSContext *cx, JSObject *obj)
+swfdec_video_clear (SwfdecAsContext *cx, SwfdecAsObject *obj, guint argc, SwfdecAsValue *argv, SwfdecAsValue *rval)
{
- SwfdecVideo *video;
-
- video = JS_GetPrivate (cx, obj);
- if (video) {
- SWFDEC_SCRIPTABLE (video)->jsobj = NULL;
- g_object_unref (video);
- }
-}
+ SwfdecVideoMovie *video = SWFDEC_VIDEO_MOVIE (obj);
-const JSClass video_class = {
- "Video", JSCLASS_HAS_PRIVATE,
- JS_PropertyStub, JS_PropertyStub, JS_PropertyS...
2007 Feb 17
0
8 commits - configure.ac doc/swfdec-sections.txt libswfdec/swfdec_loader.c libswfdec/swfdec_player.c libswfdec/swfdec_player.h libswfdec/swfdec_player_internal.h libswfdec/swfdec_root_movie.c libswfdec/swfdec_scriptable.c libswfdec/swfdec_scriptable.h
...table.h"
#include "swfdec_debug.h"
+#include "swfdec_loader_internal.h"
#include "js/jsapi.h"
G_DEFINE_ABSTRACT_TYPE (SwfdecScriptable, swfdec_scriptable, G_TYPE_OBJECT)
@@ -154,3 +155,58 @@ swfdec_scriptable_from_jsval (JSContext
return NULL;
return JS_GetPrivate (cx, object);
}
+
+/**
+ * swfdec_scriptable_set_variables:
+ * @script: a #SwfdecScriptable
+ * @variables: variables to set on @script in application-x-www-form-urlencoded
+ * format
+ *
+ * Verifies @variables to be encoded correctly and sets them as string
+ * properties on the...
2007 Feb 19
0
22 commits - libswfdec/js libswfdec/swfdec_debugger.c libswfdec/swfdec_js.c libswfdec/swfdec_js_global.c libswfdec/swfdec_js_movie.c libswfdec/swfdec_movie.c libswfdec/swfdec_player.c libswfdec/swfdec_player_internal.h libswfdec/swfdec_script.c
...dex 10fde07..dde352d 100644
--- a/libswfdec/swfdec_js_movie.c
+++ b/libswfdec/swfdec_js_movie.c
@@ -941,6 +941,35 @@ mc_rotation_set (JSContext *cx, JSObject
}
static JSBool
+mc_xmouse_get (JSContext *cx, JSObject *obj, jsval id, jsval *vp)
+{
+ double x, y;
+ SwfdecMovie *movie;
+
+ movie = JS_GetPrivate (cx, obj);
+ g_assert (movie);
+
+ swfdec_movie_get_mouse (movie, &x, &y);
+ x = rint (x * SWFDEC_TWIPS_SCALE_FACTOR) / SWFDEC_TWIPS_SCALE_FACTOR;
+ return JS_NewNumberValue (cx, x, vp);
+}
+
+static JSBool
+mc_ymouse_get (JSContext *cx, JSObject *obj, jsval id, jsval *vp)
+{
+ double...
2007 Jun 21
0
Branch 'as' - 5 commits - libswfdec/Makefile.am libswfdec/swfdec_as_strings.c libswfdec/swfdec_js_net_stream.c libswfdec/swfdec_movie.c libswfdec/swfdec_net_connection.c libswfdec/swfdec_net_stream_as.c libswfdec/swfdec_net_stream.c
...NENT|JSPROP_READONLY, swfdec_js_net_stream_bytes_total, NULL },
- { "time", -1, JSPROP_PERMANENT|JSPROP_READONLY, swfdec_js_net_stream_time, NULL },
- { NULL }
-};
-
-static void
-swfdec_js_net_stream_finalize (JSContext *cx, JSObject *obj)
-{
- SwfdecNetStream *stream;
-
- stream = JS_GetPrivate (cx, obj);
- if (stream) {
- SWFDEC_SCRIPTABLE (stream)->jsobj = NULL;
- g_object_unref (stream);
- }
-}
-
-const JSClass net_stream_class = {
- "NetStream", JSCLASS_HAS_PRIVATE,
- JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
- JS_EnumerateStu...
2007 Mar 07
0
13 commits - libswfdec/Makefile.am libswfdec/swfdec_js_global.c libswfdec/swfdec_js_movie.c libswfdec/swfdec_root_movie.c libswfdec/swfdec_root_movie.h libswfdec/swfdec_script.c libswfdec/swfdec_sprite.h libswfdec/swfdec_sprite_movie.c
...wfdec_js_copy_props (SwfdecMovie *targe
}
static JSBool
+swfdec_js_movie_attachMovie (JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
+{
+ SwfdecMovie *movie, *ret;
+ const char *name, *export;
+ int depth;
+ SwfdecContent *content;
+ SwfdecGraphic *sprite;
+
+ movie = JS_GetPrivate (cx, obj);
+ g_assert (movie);
+
+ export = swfdec_js_to_string (cx, argv[0]);
+ name = swfdec_js_to_string (cx, argv[1]);
+ if (export == NULL || name == NULL)
+ return JS_FALSE;
+ sprite = swfdec_root_movie_get_export (SWFDEC_ROOT_MOVIE (movie->root), export);
+ if (!SWFDEC_IS_SPRITE...
2007 Mar 02
0
12 commits - libswfdec/Makefile.am libswfdec/swfdec_audio_flv.c libswfdec/swfdec_flv_decoder.c libswfdec/swfdec_js.c libswfdec/swfdec_js.h libswfdec/swfdec_js_video.c libswfdec/swfdec_loader.c libswfdec/swfdec_loader_internal.h
...swfdec_js_video_attach_video, 1, 0, 0 },
+ { "clear", swfdec_js_video_clear, 0, 0, 0 },
+ { "toString", swfdec_js_video_to_string, 0, 0, 0 },
+ {0,0,0,0,0}
+};
+
+static void
+swfdec_js_video_finalize (JSContext *cx, JSObject *obj)
+{
+ SwfdecVideo *video;
+
+ video = JS_GetPrivate (cx, obj);
+ if (video) {
+ SWFDEC_SCRIPTABLE (video)->jsobj = NULL;
+ g_object_unref (video);
+ }
+}
+
+const JSClass video_class = {
+ "Video", JSCLASS_HAS_PRIVATE,
+ JS_PropertyStub, JS_PropertyStub, JS_PropertyStub, JS_PropertyStub,
+ JS_EnumerateStub, JS_Resolv...