[gjs/ewlsh/whatwg-console] Some hacky solutions to thorny problems
- From: Evan Welsh <ewlsh src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gjs/ewlsh/whatwg-console] Some hacky solutions to thorny problems
- Date: Fri, 11 Jun 2021 05:07:13 +0000 (UTC)
commit e448d7566ee2a358d1ac7b33c205dcc0e0544537
Author: Evan Welsh <contact evanwelsh com>
Date: Thu Jun 10 22:07:03 2021 -0700
Some hacky solutions to thorny problems
gjs/engine.cpp | 9 +++++++--
installed-tests/js/jsunit.gresources.xml | 2 +-
installed-tests/js/modules/badOverrides/{Gio.js => Gtk.js} | 0
installed-tests/js/testImporter.js | 8 +++++++-
meson.build | 1 +
5 files changed, 16 insertions(+), 4 deletions(-)
---
diff --git a/gjs/engine.cpp b/gjs/engine.cpp
index 4908c775..1f86ac5b 100644
--- a/gjs/engine.cpp
+++ b/gjs/engine.cpp
@@ -170,12 +170,17 @@ LPVOID lpvReserved)
class GjsInit {
public:
GjsInit() {
- if (!JS_Init())
+ // TODO(evanmh): Somehow I caused GjsInit to be reinitialized at some
+ // point... maybe because of linking??? This only showed up in the test
+ // suite...
+ if (!JS_IsInitialized() && !JS_Init()) {
g_error("Could not initialize Javascript");
+ }
}
~GjsInit() {
- JS_ShutDown();
+ if (JS::detail::libraryInitState <= JS::detail::InitState::Running)
+ JS_ShutDown();
}
explicit operator bool() const { return true; }
diff --git a/installed-tests/js/jsunit.gresources.xml b/installed-tests/js/jsunit.gresources.xml
index b635c50c..b2000a3f 100644
--- a/installed-tests/js/jsunit.gresources.xml
+++ b/installed-tests/js/jsunit.gresources.xml
@@ -9,7 +9,7 @@
<file>minijasmine.js</file>
<file>modules/alwaysThrows.js</file>
<file>modules/badOverrides/GIMarshallingTests.js</file>
- <file>modules/badOverrides/Gio.js</file>
+ <file>modules/badOverrides/Gtk.js</file>
<file>modules/badOverrides/Regress.js</file>
<file>modules/badOverrides/WarnLib.js</file>
<file>modules/data.txt</file>
diff --git a/installed-tests/js/modules/badOverrides/Gio.js b/installed-tests/js/modules/badOverrides/Gtk.js
similarity index 100%
rename from installed-tests/js/modules/badOverrides/Gio.js
rename to installed-tests/js/modules/badOverrides/Gtk.js
diff --git a/installed-tests/js/testImporter.js b/installed-tests/js/testImporter.js
index 5202abce..6e6bbcf0 100644
--- a/installed-tests/js/testImporter.js
+++ b/installed-tests/js/testImporter.js
@@ -33,7 +33,13 @@ describe('GI importer', function () {
});
it("throws an exception when the overrides _init isn't a function", function () {
- expect(() => imports.gi.Gio).toThrowError(/_init/);
+ var GLib = imports.gi.GLib;
+
+ if (GLib.getenv('ENABLE_GTK') !== 'yes') return;
+
+ imports.gi.versions.Gtk = '3.0';
+
+ expect(() => imports.gi.Gtk).toThrowError(/_init/);
});
});
});
diff --git a/meson.build b/meson.build
index bf767296..01e8e4ae 100644
--- a/meson.build
+++ b/meson.build
@@ -306,6 +306,7 @@ if build_readline
endif
header_conf.set('USE_UNITY_BUILD', get_option('unity'))
header_conf.set('HAVE_SYS_SYSCALL_H', cxx.check_header('sys/syscall.h'))
+header_conf.set('HAVE_SYS_IOCTL_H', cxx.check_header('sys/ioctl.h'))
header_conf.set('HAVE_UNISTD_H', cxx.check_header('unistd.h'))
header_conf.set('HAVE_SIGNAL_H', cxx.check_header('signal.h',
required: build_profiler))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]