summaryrefslogtreecommitdiffstats
path: root/gjs/gjs_context_gc_wrapper.patch
blob: d0c6127ea6eba5ddeaf9b7650a5ff77a803263d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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