summaryrefslogtreecommitdiffstats
path: root/gjs/gjs_context_gc_wrapper.patch
diff options
context:
space:
mode:
Diffstat (limited to 'gjs/gjs_context_gc_wrapper.patch')
-rw-r--r--gjs/gjs_context_gc_wrapper.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/gjs/gjs_context_gc_wrapper.patch b/gjs/gjs_context_gc_wrapper.patch
new file mode 100644
index 0000000..d0c6127
--- /dev/null
+++ b/gjs/gjs_context_gc_wrapper.patch
@@ -0,0 +1,49 @@
+From 059f6a13bb5ed18060aa27bbe900575e6966efb0 Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters@verbum.org>
+Date: Fri, 16 Sep 2011 14:28:16 +0000
+Subject: context: Add gjs_context_gc() wrapper
+
+Simple wrapper for JS_GC() avoids simple embedders having to drop to
+JSAPI.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=659253
+---
+diff --git a/gjs/context.c b/gjs/context.c
+index 5688477..bb7a4cd 100644
+--- a/gjs/context.c
++++ b/gjs/context.c
+@@ -899,6 +899,19 @@ gjs_context_maybe_gc (GjsContext *context)
+ gjs_maybe_gc(context->context);
+ }
+
++/**
++ * gjs_context_gc:
++ * @context: a #GjsContext
++ *
++ * Initiate a full GC; may or may not block until complete. This
++ * function just calls Spidermonkey JS_GC().
++ */
++void
++gjs_context_gc (GjsContext *context)
++{
++ JS_GC(context->context);
++}
++
+ static gboolean
+ gjs_context_idle_emit_gc (gpointer data)
+ {
+diff --git a/gjs/context.h b/gjs/context.h
+index 3fc94e0..4e01cc7 100644
+--- a/gjs/context.h
++++ b/gjs/context.h
+@@ -75,6 +75,8 @@ void gjs_context_print_stack_stderr (GjsContext *js_context);
+
+ void gjs_context_maybe_gc (GjsContext *context);
+
++void gjs_context_gc (GjsContext *context);
++
+ void gjs_dumpstack (void);
+
+ G_END_DECLS
+--
+cgit v0.9.0.2