[seed] seed-engine: expose API to initialize the importer.



commit 82e6e9091ecdfaaca92499a6d8bbb8ec00eb49ec
Author: Mathieu Duponchelle <mathieu duponchelle opencreed com>
Date:   Fri Sep 16 11:17:27 2016 +0200

    seed-engine: expose API to initialize the importer.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=771520

 libseed/seed-engine.c  |   17 +++++++++++++++++
 libseed/seed-private.h |    1 +
 libseed/seed.h         |    3 +++
 3 files changed, 21 insertions(+), 0 deletions(-)
---
diff --git a/libseed/seed-engine.c b/libseed/seed-engine.c
index 51c3577..e1ab54d 100644
--- a/libseed/seed-engine.c
+++ b/libseed/seed-engine.c
@@ -1837,6 +1837,7 @@ seed_init_constrained_with_context_and_group(gint* argc,
     eng->group = context_group;
     eng->search_path = NULL;
     eng->program_name = NULL;
+    eng->importer_initialized = FALSE;
 
     function_proto
       = (JSObjectRef) seed_simple_evaluate(eng->context, "Function.prototype",
@@ -2022,6 +2023,22 @@ seed_init_constrained(gint* argc, gchar*** argv)
 }
 
 /*
+ * seed_engine_initialize_importer:
+ * @engine: A #SeedEngine created with seed_init_constrained() or
+ * seed_init_constrained_with_context_and_group().
+ *
+ * Initializes the importer for this engine, if it was not done before,
+ * otherwise silently returns.
+ */
+void
+seed_engine_initialize_importer(SeedEngine *engine)
+{
+    if (!engine->importer_initialized)
+      seed_initialize_importer(eng->context, eng->global);
+    engine->importer_initialized = TRUE;
+}
+
+/*
  * seed_engine_expose_gobject:
  * @engine:
  * @name: The name of the global javascript variable pointing to @object
diff --git a/libseed/seed-private.h b/libseed/seed-private.h
index 880a6c6..de2d28c 100644
--- a/libseed/seed-private.h
+++ b/libseed/seed-private.h
@@ -42,6 +42,7 @@ struct _SeedEngine
 
     JSContextGroupRef group;
     gchar* program_name;
+    gboolean importer_initialized;
 };
 
 #include "seed-debug.h"
diff --git a/libseed/seed.h b/libseed/seed.h
index 4f204e8..09ac23c 100644
--- a/libseed/seed.h
+++ b/libseed/seed.h
@@ -67,6 +67,7 @@ typedef struct _SeedEngine
 
     SeedContextGroup group;
     gchar* program_name;
+    gboolean importer_initialized;
 } SeedEngine;
 
 /*
@@ -117,6 +118,8 @@ gchar* seed_exception_to_string(SeedContext ctx, SeedException exception);
 
 SeedValue seed_evaluate(SeedContext ctx, SeedScript* s, SeedObject this_object);
 
+void seed_engine_initialize_importer(SeedEngine *engine);
+
 SeedValue seed_engine_expose_gobject(SeedEngine* engine,
                                      gchar* js_name,
                                      GObject* object,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]